Skip to main content
Jump to: navigation, search

Modeling Project Releng/Building/Scheduled Builds

Using a website or shell script for building too much work? Well, thanks to bug 207007 you can now set up builds to run on a schedule.

By default, a build will only run if there's anything new in CVS to merit a build. This can be overridden such that a build will ALWAYS run at a given time using the -nosearchcvs flag.


Say you want to run 5 builds back-to-back and have each one grab the latest, starting at 6pm and running until about 7:15pm.

Login to your build server, then add this to your crontab using crontab -e to edit it.

# U/O/QTV N builds: uml2 (20-25min), ocl (10-15min), query (5-10min), validation (7-10min), transaction (12-15min)
00 18 * * 2 sudo -u www-data /home/www-data/build/modeling/scripts/ -sub uml2 -regex "[ISR]200.*/eclipse-SDK-|[ISR]200.*/emf-sdo-xsd-SDK-" -basebuilderBranch v20071030 -nosearchcvs > $HOME/cron_logs/ 2>&1
25 18 * * 2 sudo -u www-data /home/www-data/build/modeling/scripts/ -sub ocl -regex "[ISR]200.*/eclipse-SDK-|[ISR]200.*/emf-sdo-xsd-SDK-|[ISR]200.*/mdt-uml2-SDK|orbit" -basebuilderBranch v20071030 -nosearchcvs > $HOME/cron_logs/ 2>&1
40 18 * * 2 sudo -u www-data /home/www-data/build/modeling/scripts/ -sub query -regex "[ISR]200.*/eclipse-SDK-|[ISR]200.*/emf-sdo-xsd-SDK-|[S]200.*mdt-ocl-SDK-" -basebuilderBranch v20071030 -nosearchcvs > $HOME/cron_logs/ 2>&1
50 18 * * 2 sudo -u www-data /home/www-data/build/modeling/scripts/ -sub validation -regex "[ISR]200.*/eclipse-SDK-|[ISR]200.*emf-sdo-xsd-SDK-|[S]200.*mdt-ocl-SDK-" -basebuilderBranch v20071030 -nosearchcvs > $HOME/cron_logs/ 2>&1
00 19 * * 2 sudo -u www-data /home/www-data/build/modeling/scripts/ -sub transaction -regex "[ISR]200.*/eclipse-SDK-|[ISR]200.*/emf-sdo-xsd-SDK-|[ISR]200.*/emf-validation-SDK-" -basebuilderBranch v20071030 -nosearchcvs > $HOME/cron_logs/ 2>&1

More Info

Noteworthy flags include:

  • Specifying dependencies:
  • -deps: specify a comma-separated list of dependencies by shortname (eg., -deps emf,ocl,query)
  • -regex: specify the regular expresssion(s) to use when looking in /home/www-data/build/requests/dependencies.txt for dependencies to use; more control than -deps
  • Testing / auditing
  • -preview: don't actually run a build, just echo the command for preview (for testing your regular expressions)
  • -listDeps: if used, list the contents of the dependencies file instead of running a build.
  • Overrides
  • -noSearchCVS: don't check Search CVS for updates and just do a build
  • -basebuilderBranch: specify the basebuilder branch to use
  • Workflow
  • -addSDK: when the build completes, the URL for that build will be added to /home/www-data/build/requests/dependencies.txt so that other builds can use it as a dependency.

Additional options and flags are documented in the shell script,

Back to the top