CASA & Hudson

CASA uses Hudson to support continuous integration. Hudson monitors the active branch of CASA and initiates an incremental rebuild and minimal testing in response to each change.

Build, Test, and Report Script

A build script is used to build and test within a Hudson workspace. Hudson takes care of updating the source code (including casacore, CASA code, and ASAP) before running the build script. This script then either builds each of these sub-packages from scratch or typically reuses the state of the Hudson workspace from the previous build.

If all of the sub-packages build properly, then a small number of tests is run to ensure that at least something works from casapy. If these tests succeed the build is tagged as successful by Hudson.

When either the build fails or the tests fail, the build script will discover how checked in the last change that resulted in a failure and send an email message to that developer as well as the CASA Hudson administrator. The script keeps a database of recent failures for inclusion in the email message. It also avoids sending email messages if the only change is an update to the VERSION file which is used to indicate when automatic builds should be scheduled. It will also not send an email if the particular revision has already been tagged and reported as failing.

Control and Configuraiton

The Hudson server currently runs on warp.cv.nrao.edu, and it is configured to poll for changes on the active branch every two minutes. In addition, it can start up to three concurrent builds. Control of the Hudson configuration is accomplished directly from the CASA Hudson Installation. Control of the script is accomplished by logging into warp.cv.nrao.edu as aips2mgr. Currently the only control that is possible is enabling and disabling the email notification that the script does. This notification can be disabled with:

    touch ~hudson/control/no-mail

and the email notification can be re-enabled with:

    rm -f touch ~hudson/control/no-mail

The build script keeps its persistent state in ~hudson/state/. This state includes the database of build failures as well as the last successfully built revision of each of the sub-packages.

-- DarrellSchiebel - 2011-02-23
Topic revision: r2 - 2011-04-08, ScottRankin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback