The checkoutBuild program is the first program executed in the call chain to build a tagged version of the various software packages managed by the Release Manager.

When invoked, this program requires the --buildId flag to be specified with the buildId corresponding to a valid entry in the build database table.  Thus all invocations must be of the form:

checkoutBuild --buildId <buildID>

where <buildId> is the build package to be worked on.

Once invoked, checkoutBuild program checks out the appropriate tagged version of the code for the given build.  The code is stored in the location specified by the buildLocation entry in the settings table.  The CVS package to checkout is specified by the cvsPackage entry (settings table) and the tag is generated by combining the versionPrepend entry (settings table) with the version entry (buildPackage table) for the specified build.

In order to relieve some stress on the CVS server and prevent errors that were occurring, each invocation of checkoutBuild pauses for a random period of up to 180 seconds before starting.  This allows multiple invocations generated by the Release Manger to not all hit the CVS server simultaneously which in the past has caused problems with cvs locks causing the checkouts to crash and fail.

If the directory specified by buildLocation exists, it is removed and recreated to provide a clean checkout.  After that, each subpackage of the build is checked out individually into the buildLocation directory.  All output from the program is stored in the entry database table.  If the checkout takes longer than 60 minutes, it is aborted and generates an error.  If there is a problem with the checkout process, an e-mail is sent to the relmanlist@glast2.stanford.edu mailing list.

  • No labels