MDT OCL Releng Introduction
This is a very brief cheat sheet on how to make and publish builds for MDT OCL project.
First, there are several types of builds:
N-builds: Nightly builds are internal-purpose builds which reflect the current state of the development stream, that is, using the current CVS HEAD state.
I/M-builds: Integration (from CVS head) and Maintenance (from CVS maintenance branch) builds usually reflect the intermediate state of the product.
S/R-builds: Stable and Release builds are published on schedule.
The releng process consists of two main phases - assembling (running) the build and publishing it on the downloads page and the P2 repository (promotion).
How to Run a Build
N-builds are run automatically when a CVS change is detected (CVS is monitored every 6 hours). I, S, R, and M-builds must be manually launched.
- Navigate to https://hudson.eclipse.org/hudson/job/buckminster-mdt-ocl-core-3.1-nightly/
- Log in using your CVS credentials
- Click "Build Now".
- On the next page, select the correspondent build type. In case you need to publish a milestone/release/maintenance build, you may want to use a proper build alias for the build. For instance, to create an M2 milestone for MDT/OCL Indigo, you have to select the S-build type and establish "3.1.0M2" as the build alias.
- Finally, you must press "Build" to start the build.
How to Publish a Build
N-builds are usuallaly published in an automated way. A cron entry defined by the release engineer is responsible to execute the publishing script every night:
30 3 * * * ant -f /shared/jobs/buckminster-mdt-ocl-core-3.1-nightly/lastSuccessful/archive/publishroot/publisher.ant -Dbuild.root=/opt/public/jobs/buckminster-mdt-ocl-core-3.1-nightly/lastSuccessful/ &> logs/mdt-ocl-publishing.log
Specifically, this ant task publishes the last successful build so that if you wanted to publish a manually executed (and succesfully completed) build you would only require to execute that command in a shell on build.eclipse.org server. To access this server, you have to use a ssh client tool (i.e PUTTY) and do the following:
- Ssh to build.eclipse.org at port 22.
- Log in using your CVS credentials.
- Execute the ant task above.
NB: If it's the first time you access Eclipse's servers, you need to be granted with shell access to log in. In order to obtain said shell access, tell your project leader to do the request. Example: https://bugs.eclipse.org/bugs/show_bug.cgi?id=310790.
NB: Mirror servers are synchronized automatically with build.eclipse.org. No manual action is required.
Including MDT OCL into the Eclipse Release Train
After the publishing process is successfully finished the S/R/M-build has to be included into the Eclipse release train.
To do so, one needs to update the MDT/OCL contribution to the correspondent release project (i.e org.eclipse.indigo.build) at /cvsroot/callisto at dev.eclipse.org:
- Open the mdt-ocl.b3aggrcon file.
- Ensure that you are using the proper repository location (i.e To contribute a milestone for Indigo release train: http://download.eclipse.org/modeling/mdt/ocl/updates/milestones/3.1.0).
- Ensure that you are using the proper verion attribute of the org.eclipse.ocl.all.sdk and org.eclipse.ocl.examples features. (i.e you could check the version of the feature, checking the correspondent repository: http://download.eclipse.org/modeling/mdt/ocl/updates/milestones/3.1.0/features/).
- Run the Helios release train build (i.e Indigo's Hudson job: https://hudson.eclipse.org/hudson/job/indigo.runAggregator/).
- Make sure that the build has been successfully completed.