National Cancer Institute   U.S. National Institutes of Health www.cancer.gov
caBIG® Knowledge Center: A part of the Enterprise Support Network

CCTS Continuous Integration Configuration

From CTMS_WIKI

Jump to: navigation, search

The shared continuous integration server for the CCTS apps is hosted at Northwestern University: https://ctms-ci.nubic.northwestern.edu/hudson.

It runs Hudson and provides PostgreSQL 8.2 and Oracle XE 10g instances for database-backed testing.

Application unit test suites

Each application's unit test suite will be run separately against each supported database. In order for this to work, each application team must provide:

  • The subversion URL for their application's build root or the app's CVSROOT, module, and the relative path to the build root
  • A build script which includes a single task/target which performs all the steps necessary to run the application's unit tests and archive the results. This may include:
    • Setting up the database schema (e.g., running database migrations)
    • Performing a clean compile, including any code generation the application uses
    • Enabling additional reporting (e.g., Emma or Cobertura)
    • Performing code inspections (e.g., Findbugs)
    • Running the unit tests and outputting a junit-style XML test report
    • Archiving any reporting artifacts in the build
  • Samples of any external configuration files necessary for the test to run.
  • A single mailing list address which should be notified when the build fails.

The build script should be parameterized (e.g., through an ant property) to select among supported databases. PSC's build script provides an example of this — take a look at the autobuild-matrix target.

Each application will have a build for its trunk. If an application wants to have a build for another branch (e.g., the current release/bugfix branch).

Build frequency: every detected change; Hudson will poll for changes every 3 minutes.

Configurations

The basic CI configurations will be built/updated from this table. If you need to provide sample external configurations, please mail them to [1].

Highlighted items reflect current configurations which should be addressed to fit within the above list of reqs.

Project Build root(s) Build script Build target Matrix parameters Code reporting tools Notification address
C3PR https://gforge.nci.nih.gov/svnroot/c3prv2/trunk/c3prv2/codebase build.xml

autobuild-ci-c3pr

database.type=postgres OR database.type=oracle Cobertura c3pr@semanticbits.com
caAERS http://gforge.nci.nih.gov/svnroot/caaersappdev/trunk/projects build.xml

autobuild-ci

db=postgresql or oracle Cobertura caaersappdev-developers@gforge.nci.nih.gov
PSC https://svn.bioinformatics.northwestern.edu/studycalendar/trunk

https://svn.bioinformatics.northwestern.edu/studycalendar/branches/releases/2.4-stable

build.xml autobuild-matrix config.database=postgresql or oracle or hsqldb-trunk EMMA studycalendar-builds@gforge.nci.nih.gov
LabViewer https://gforge.nci.nih.gov/plugins/scmcvs/cvsweb.php/caxchange/Code/?cvsroot=caxchange build-LabViewer-CI.xml ci Not implemented Not implemented Labviewer@scenpro.com
C3D Connector
caXchange

Application deployment packaging

Each application will also need to provide a build target which creates the distribution package (e.g., ZIP archive, installer, etc.) for their application. This build should run the unit tests for code verification, but does not need to generate any reports.

Build frequency TBD. Current thinking: every 6 hours.

Project Build root(s) Build script Build target Matrix parameters Code reporting tools Notification address
LabViewer https://gforge.nci.nih.gov/plugins/scmcvs/cvsweb.php/caxchange/Code/?cvsroot=caxchange build-LabViewer-CI.xml build_zip Not implemented Not implemented Labviewer@scenpro.com
KC Projects