Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current ·  View Page History

myGrid has a Hudson installation that performs automatic building of the Taverna source code.

Each of the projects from Subversion should be listed as a project in Hudson. (ie. every folder that is in the form net.sf.taverna.* and has a trunk/tags/branches directory structure in Subversion.)

To group these projects in Hudson, you will find views roughly matching the Subversion categories, like engine, utilsand ui.


 

Automatic build

Each of the projects should be set up with the "Poll SCM" build trigger, set to poll every 5th minute. There's a system-wide grace period of 4 minutes. What this means is that every 5th minute, for each of the projects, Hudson will do a svn update to see if there's any changes to the code in Subversion. If that's the case, it will wait 4 minutes, and do a build of that project.


 
 

Additionally, Hudson understands dependencies, so any project that depends on the freshly built project will also be rebuilt afterwards - and so on recursively.
 
As Hudson uses the normal mvn clean install deploy procedure, any compilation failures or unit test failures will be caught, and indicated by a yellow or red ball on the front screen.

This means that after a maximum of 9 minutes (given that there are no other builds going on), a change committed to Subversion will be picked up by Hudson, compiled, tested and deployed as new snapshots.

Maven snapshot deployment

Hudson will run the Maven targets mvn clean install deploy on every build, meaning that new Maven snapshot artifacts will be deployed for every project to our Maven repository.

This means that as a developer you don't need to check out every project, even if you want to be on the bleeding edge. As new snapshots are built 9 minutes after a commit, you will not be lagging behind by much. Another advantage is that if the build of a module fails, it will not be deployed, and so the previously deployed version of that module will still be used from the snapshot repository.

Most Maven installations checks for updates of snapshot dependencies when they are more than 24 hours out of date. You can change this setting, or if you are using Eclipse with m2eclipse, you can also force an update by right clicking and selecting Maven -> Update snapshots.

Nightly builds

In addition to the automatic builds on subversion commits there's also a nightly build, initiated by the virtual Hudson project net.sf.taverna.t2.build.full.This project builds every night at 03:41, and it has "Build other projects" set towards each of the other projects. This also mean that you can force a full rebuild by clicking "Build now" on that project.

Unfortunately, Hudson also does the "Build projects that depend on me" logic, meaning that some projects are built twice or more during the night.

The [net.sf.taverna.t2.builds.taverna-workbench.maintenance] project is run every night, and does a complete checkout of the Taverna build tree on the maintenance branch. This ensures that all of Taverna can be built in one go - and on success it will deploy the snapshot artifacts to myGrid's snapshot Maven repository.

This means that the snapshots are only deployed if everything builds, and all the unit tests pass.

There's the equivalent net.sf.taverna.t2.builds.taverna-workbench which builds all of the trunk source code.

There's a separate Hudson build triggered which creates the Nightly Snapshot.

User access

You should have access to log in to Hudson if you are a member of the mygrid-developer group, using the same login as on this wiki and on our issue tracker Jira.

Labels
  • None