Archive for June 22nd, 2008

 

PHPUnderControl Install Guide

Jun 22, 2008 in CI, PHP

Lately I’ve been doing some work with PHPUnderControl. It’s based on the Cruise Control Continuous Integration framework, which in turn, is based on Ant. It combines PHPUnit, PHPDocumentor & CodeSniffer to build & test software projects. It works pretty well, though there were a few mysteries along the way to getting an install up and running. I’m in the middle of preparing a comprehensive how-to, but meanwhile, here are a few notes I made about the installation & configuration process.

* There’s no easy way to start and stop Cruise Control. You’ll need to add an init script for starting/stopping/restarting. I’ll post mine here eventually.

* Disc Space: Builds can potentially use up a ton of the stuff. Make sure you have plenty of room, and/or, an easy way to shutdown the CC process if you find yourself running out of disc space.

* Configuration changes require a restart/reload to take affect. This should be second-nature if you’re used to configuring apache etc. Having said this, it caught me out a couple of times.

* You can configure builds to be triggered only where code changes have been merged to your svn sources. This saves heaps of unnecessary disc writing etc.

* Be careful using relative file paths. I’m still looking into how Ant handles file paths, but it definitely seems to be inconsistent. I’m using absolute paths in my build.xml & config.xml config files.

* If commands in your build process are failing, check the contents of /path/to/cruisecontrol/cruisecontrol.log - This will detail the exact commands being run by cruisecontrol.

* To test your build.xml configuration for a specific project run /path/to/cruisecontrol/apacheAnt-Version/bin/ant from within the project directory. Do this before restarting the cruisecontrol process to avoid builds failing because config errors.