Continuous Integration

Testing server URL: http://ci.aegirproject.org

Recently, mig5 put together a testing server based on Jenkins.

So what? In doing so, he's produced a tool that will allow us to spin up a temporary virtual server, drag in our codebase from Drush Make, other codebases as platforms, and do test installs of sites on it. This should become a routine start-to-finish test of our applications, features, modules, etc. All at the click of a button (or less, by scheduling it!)

Currently, we have a build project that:

  • Provisions a new VPS at Rackspace Cloud
  • Installs Aegir 6.x-1.x branch
  • Builds a Drupal 6, Drupal 7 and OpenAtrium platform using Drush Make
  • Installs a site (with respective install profiles) on all three platforms

If anything fails here, an alert will come through to #aegir on Freenode. This will help us to test the Aegir install (especially to ensure our compatibility with Drush and Drush Make releases), and to identify any regressions in our own project.

Every 15 minutes, Jenkins will check if there's a new commit to hostmaster and provision, and if there is, fire up a new install and test a few things to find regressions.

We also have a build project for the most recent official release of Aegir (@TODO: test .deb installation method of Aegir for this), as well as a build that installs an earlier Aegir and then upgrades to the latest 6.x-1.x to test the upgrade path.