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