Continuous Integration

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

Recently, Mig5 put together a testing server based on Jenkins (ref.: http://greenbeedigital.com.au/content/discovering-jenkins-and-increasing...).

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, and do a test install of a site 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
  • 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 can also use Jenkins to test the upgrade path.