Vincent Massol wrote:
>
>  * You have gump checked out in /home/rubys/gump
> * You cd in /home/rubys/gump and you call gen.sh, which generates update
> and build script in /home/rubys/jakarta
> * You cd to /home/rubys/jakarta and you call update.sh. This checks
> out/update the different projects
> * Then you call build.sh, which generates the project builds
> * All logs (which will eventually go to
> http://jakarta.apache.org/builds/gump/latest) from gen.sh, update.sh and
> build.sh are in /home/rubys/Jakarta/log

Yup.  Though the update and build scripts will do the cd for you.

> * The last project to be built is gump (defined in rubix.xml). As the
> home attribute is set to /home/rubys/gump, we find ourself in the same
> directory where gen.sh had initially created the work dir.

I wouldn't worry about that.  I build gump using gump for the same reason
that I build other projects using gump - to see if there are any changes to
dependencies which will affect me.

> At this stage I am not sure ...
>
> * It seems the "all" target that is called in build.xml recreates some
> of the scripts that were created by the initial gen.sh, like the build
> script, update script, publish script, xrefs and in addition creates
> some new ones : deliver (which appears to be only for unix. No windows
> version ?) and the naglist list. In addition it generates javadoc for
> Gump java classes and generates the Gump website
> (http://jakarta.apache.org/gump).

Only if you build gump using gump.  And some of the properties on that
build step

... and it stops here ...

What is still missing :

> * Copy of the generated html files in /home/rubys/Jakarta/log to
> Jakarta.apache.org. How is it done ?

I use the scp command

> * Copy of the Gump web site to Jakarta.apache.org. How is it done ?

I use the scp command

> * Copy of the project build outputs (jars and doc) to
> Jakarta.apache.org. How is it done ?

These aren't copied to jakarta.apache.org,,, the are left on the build
machine. They are published using the generated publish.sh.

> * Send emails for build failure. How is it done ?

The generated naglist is used in conjunction with the nag.pl script.

> * It seems there must be a master build script on top of all these steps
> that ties the process together. Do you have such a script that you have
> put in a crontab ? Or do you perform all these steps manually every
> night :-) ?

I have several master scripts.  A basic one tailored per platform does the
basic gump run.  Here's the version for rubix:

   export PATH=$PATH:/home/rubys/bin:/usr/local/bin
   export CVS_RSH=`which ssh`
   export start=`date`
   export LOG=/home/rubys/jakarta/log/gen.html
   export XALAN=/opt/xalan-j_2_2_D13

   cd
   cd bin
   #
   . jdk1312
   cd /home/rubys/gump
   echo \<XMP\> > $LOG
   if ! /home/rubys/bin/timeout 1200 socksify cvs update >> $LOG; then
   sleep 90
   echo Retrying... >> $LOG
   /home/rubys/bin/timeout 1200 socksify cvs update >> $LOG
   fi
   rm .timestamp
   sh gen.sh -cp "/home/rubys/bin/timeout 1200" 2>&1 >> $LOG
   cp work/naglist ~
   echo >> $LOG
   bash work/build.sh gump clean >> $LOG
   echo >> $LOG
   export >> $LOG
   echo \</XMP\> >> $LOG

   /usr/X11R6/bin/Xvfb :8 &
   export DISPLAY=:8

   cd /home/rubys/jakarta
   socksify sh update.sh all
   socksify sh build.sh all

   kill `ps -eo pid,comm | awk '/Xvfb/ { print $1 }'`
   ps -e | awk "/java/ {print \$1}" | xargs kill

   cp work/naglist ~
   sh /home/rubys/bin/pubjak
   #
   echo
   echo Started:  $start
   echo Complete: `date`


I have several variations on this.  On nagoya nightly builds are run using
jdk 1.4, for example.  Another nagoya run will capture javadocs.  On
gump.covalent.net, jars are captured.  On rubix, you see a call to pubjak
which is a script which uploads nightly builds and triggers the nags.  I've
already converted over to the naglist that Stefan added functionallity to
generated.  In my first attempt, it failed because the build of gump failed
so no nags were sent out.  I plan to convert over to the delivery stuff
that Stefan has also produced once I review it.

I also have other things in these scripts that I accumulated over time.
Xvfb is used to similate an XWindows display... I kill all java process at
the end of the script.  I have timeouts throughout.

- Sam Ruby


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to