|
Donate your cycles to test Babel
|
|
|
Put instructions to configure automated testing of the nightly babel distribution here.
- Make sure the prerequisites for Babel are installed: CHASM, libxml2, and either NumPy or the deprecated Numeric Python. Make sure you can build an official distribution of Babel from the main Babel distribution site. Many of these packages may already be installed on your system. If not, there may be prepackaged binaries available from your operating system distributor. When configuring CHASM, I suggest using
--enable-shared --disable-pdt .
- Get an account on cca-forum.org.
- Check out the copy of the babel development files:
mkdir ${HOME}/babel_testing ; cd ${HOME}/babel_testing ; svn co svn+ssh://cca-forum.org/home/svn/babel/trunk babel . You may need to insert a username if using a testing account named other than your cca login, e.g. svn co svn+ssh://USER@cca-forum.org/home/svn/babel/trunk babel (Please note that the code which will be tested is a downloaded nightly tar file (as mentioned at the top of this page), not the checked out babel copy you use to set up testing.)
- Change directories to the cronjobs subdirectory:
cd babel/regression/cronjobs
- Add MakeWebCheckKey.asc to your GPG keyring. Here's a simple GPG Example. This is assuming that the nightly build will run with your user account (userid & groupid). If you don't want to disturb your personal GPG setup, you can set the
GNUPGHOME environment variable in your .profile file to specify an alternative directory for GPG configuration information. The finger print for the Babel key should match the following 6135 307F 0F9B 569A D2CD 67C2 C4C9 ADCE 2CB2 BD37
- Look at the various various .profile files there
ls *.profile , and pick one that sounds close to your environment.
- Copy one of the profile files to your profile file. For example,
cp casc-linux-gcc2.96-g77-absoft-dbg.profile myorg-linux-gcc-g77-gfortran-dbg.profile
- Edit this profile to set environment variables to appropriate values for your organization.
template.profile shows many of the environment variables that have an impact. The key thing to setup is to choose which which C, C++, Fortran 77, Fortran 90/95, Python and Java compilers to use. The PACKAGING_BUILDDIR is also critical. It specifies a directory where the build files will be stored. The TESTGID sets a group id that will be use for all test related files and directories. The test scripts do $CHGRP -Rf $TESTGID for the test directories. If you have a multi-core machine and GNU make, you can reduce build time with settings like export MAKE_FLAGS='-j3'
- If you would like to test the latest changes to the Babel 1.0.x series,
export PACKAGE=babel10x This will test the latest commits to the latest Babel 1.0.x release.
- Try out your profile:
/bin/bash ./gantlet_cron.sh myorg-linux-gcc-g77-gfortran-dbg.profile make_webcheck myemailaddr@myorg.net . LLNL generates nightly tarballs Sunday through Thursday, so this step should work fine if you run it Monday through Friday unless the LLNL nightly tarball build failed. If you run after 7:30pm Pacific time, you will most likely test the tarball generated in the evening of today's nightly tarball. If you run before 7:30pm, you will most likely test last night's nightly tarball. If it's successful, you should get a long XML file. Also examine the output in the terminal window to see if your profile needs tweeking.
- Try out your profile as a cronjob. Use
crontab -e to edit your crontab. Add a line like 45 19 * * 0-4 (cd ${HOME}/babel_testing/babel/regression/cronjobs ; /bin/bash gantlet_cron.sh myorg-linux-gcc-g77-gfortran-dbg.profile make_webcheck myemailaddr@myorg.net) 2>&1 . If your cron supports it, you might also want to set the MAILTO environment variable which sets the email address where cron email is sent. In some environments, you may need to set http_proxy variables as well so the download of the nightly release succeeds.
- Once you've had some successful test runs (successful doesn't necessarily mean that all the tests pass, it just means the tests didn't break due to a incorrect .profile file), change your crontab line to send the email to LLNL.
45 19 * * 0-4 (cd ${HOME}/babel_testing/babel/regression/cronjobs ; /bin/bash gantlet_cron.sh myorg-linux-gcc-g77-gfortran-dbg.profile make_webcheck babel-automated@llnl.gov ) 2>&1
- If you're a member of the babel-dev email list at LLNL, your nightly build should be included in the daily summary that's archived in the babel-dev mailing list archive.
- It's probably worth adding your profile to Babel's svn respository.
cd ${HOME}/babel_testing/babel/regression/cronjobs svn add myorg-linux-gcc-g77-gfortran-dbg.profile svn propset svn:mime-type text/plain myorg-linux-gcc-g77-gfortran-dbg.profile svn propset svn:eol-style native myorg-linux-gcc-g77-gfortran-dbg.profile svn commit -m "Adding profile for Myorg" myorg-linux-gcc-g77-gfortran-dbg.profile
- Consider subscribing to the babel-dev mailing list at llnl.gov. See the instructions here. If the moderator questions why you want to join, mention that you're running a nightly build.
What to do when the build fails
- Cron usually sends you an email showing the output of the nightly build job. If this indicates a problem in Babel, forward it to babel-dev@llnl.gov. It might also indicate a problem with your profile.
- Look for a file in $PACKAGING_BUILDDIR/myorg-linux-gcc-g77-gfortran-dbg/$PACKAGE/ ending with
.cron.log . This file has the complete log of the build. The problem is usually near the end. If it indicates a problem in Babel, send the relevant part to babel-dev@llnl.gov
Created by: baallan
last modification: Tuesday 20 of March, 2007 [18:14:18 UTC] by tepperly
|
|