Common Build Infrastructure/Build Types
- Nightly (N) - run continuously as SVN or CVS changes; generally run from trunk or head.
- Continuously really means "will check repository every X minutes and build if required."
- See also Snapshot Dependencies
- Integration (I) - run weekly on schedule
- If you are building from a mapfile, you can have Hudson monitor your releng project for changes and only run a build if the maps change; thus these builds will only run when changes are released from HEAD into the map (eg., using the Eclipse Releng Tools plugin to
Team > Release...).
- NOTE: Rather than the manual Eclipse Releng Tools plugin, you can also set up a crontab script to perform an across-the-board check for changes and automatically release them into the map file(s). See this script for an example of how to do so.
- Or, set Hudson to just run a build once a week from HEAD.
- Stable (S) - including Milestones and Release Candidates, these are run every 4-6 weeks at the start of a cycle, then weekly as needed at the end of a cycle.
- Release (R) - once at the end of the cycle.
There is also a 5th type, the Maintenance (M) build, which is essentially a weekly Integration build, but done as maintenance on a branch rather than as integration from trunk or head.
To create these different types of builds, input the following variables into and Athena build / Hudson job:
Set the build type to "N", which will disable signing to save time and server resources.
If you want to build from HEAD (or another branch/tag) instead of respecting the values in the map file, use the option below:
BUILDTYPE = N EXTRAFLAGS = -forceContextQualifier -fetchTag HEAD
Integration or Maintenance
Set build type to "I" or "M", as appropriate.
If you want plugins to all be timestamped with the build's timestamp instead of the unique values from the tags in the map files, set
-forceContextQualifier. Generally, this is NOT recommended unless your maps contain "HEAD" or "trunk"
BUILDTYPE = I EXTRAFLAGS = -forceContextQualifier
Stable or Release
Set build type to "S" or "R", as appropriate.
Since these builds are stable, they should be built from tags and thus
-forceContextQualifier should not be needed.
BUILDTYPE = S EXTRAFLAGS = -buildAlias 0.2.0M3 or BUILDTYPE = R EXTRAFLAGS = -buildAlias 0.2.0