The compileBuild program is the second 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:

compileBuild --buildId <buildID>

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

When invoked this program begins by setting the compileStartTime value in the build database for this build.  It then launches the SCons builder with using the SCons command found at sconsLocation and passing in the sconsOptions values (both from the settings database).  If the compile takes longer than compileTime (settings database), it is terminated and the process returns with a return code of 99.

If the build is successful, the output is stored in the database and the exit code is set to the return code from SCons.  The output is then parsed to look for failures in the build process and each subpackage with a failure is flagged in the database.  The success or failure of each sub-package is stored in the compileStatus column of the  subPackage table in the rd_releasemgr database

Next, the output is parsed for the list of external packages used in this build.  (The --rm flag in the sconsOptions causes this list to be printed into the output.)  Each package is recorded in the extLib database table.  The extInstallerLocation or extInstallerPath location is then checked to see if the download package for this external exists.  If not, it is created (and on Mountain Lion scp'ed to the externalsLocation).

Finally, the program sets the compileStopTime value in the build database for this build and exits.

  • No labels