Continuous integration/Overhaul

Progress/documentation page for new Continuous Integration server to host CruiseControl & TestSwarm on one server.

Test VM

Required base packages
All of the following packages are pulled directly from Ubuntu 10.04 LTS:
 * git-core
 * libapache2-mod-php5
 * mysql-server
 * php5-cli
 * php5-curl
 * php5-gd
 * php5-mysql
 * php-pear
 * php5-sqlite
 * php5-tidy
 * subvesion
 * sqlite3

Secondary packages
Do the following: wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - Add the following to /etc/apt/sources.list deb http://pkg.jenkins-ci.org/debian binary/ Then install: apt-get update apt-get install jenkins

PEAR packages
Must first set desired package stability to 'beta', using pear config-set preferred_state beta. The following channels must be added to a default pear install: pear channel-discover pear.pdepend.org pear channel-discover pear.phpmd.org pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com Then do the following: pear install pdepend/PHP_Depend pear install phpmd/PHP_PMD pear install phpunit/phpcpd pear install phpunit/phploc pear install PHPDocumentor pear install PHP_CodeSniffer pear install --alldeps phpunit/PHP_CodeBrowser pear install --alldeps phpunit/PHPUnit

Jenkins plugins

 * Checkstyle (for processing PHP_CodeSniffer logfiles in Checkstyle format)
 * Clover PHP (for processing PHPUnit code coverage xml output)
 * DRY (for processing phpcpd logfiles in PMD-CPD format)
 * HTML Publisher (for publishing the PHPUnit code coverage report, for instance)
 * JDepend (for processing PHP_Depend logfiles in JDepend format)
 * Plot (for processing phploc CSV output)
 * PMD (for processing PHPMD logfiles in PMD format)
 * Violations (for processing various logfiles)
 * xUnit (for processing PHPUnit logfiles in JUnit format)