Continuous integration/Legacy server

The Wikimedia continuous integration server is a virtual machine that runs CruiseControl + phpUnderControl continuous integration builds. It is located at http://ci.tesla.usability.wikimedia.org.

Using edit

Any user can start a new build by navigating to http://ci.tesla.usability.wikimedia.org/cruisecontrol/index (accessible by clicking on phpUnderControl logo) and clicking on the run button. In case of failed builds codurr will post a rant to #mediawiki connect.

For server admins edit

FIXME probably no longer true. We have ton of local modifications.

The CC configuration is maintained at <http://svn.wikimedia.org/svnroot/mediawiki/trunk/test-server/>. At the moment CC is not configured to automatically update it from SVN, so you need to manually change it at /home/ci/cruisecontrol-bin-2.8.3/. To make it catch changes in build.xml, you may need to run

sudo -u ci ant

culprits edit

The parser tests suite generates lot of temporary files in /tmp/. It has a bug somewhere that makes it NOT deleting the file, thus the disk inode capacity rapidly fil up to 100% usage. A work around has been setup to delete the files from the ci user crontab:

ci@ci:~$ crontab -l
# m h  dom mon dow   command
07,27,47 * * * *  rm -R /tmp/mwParser* >/dev/null 2>&1
ci@ci:~$ 

Extension tests edit

Any extension hosted in our SVN can be included into tests. Currently tested extensions are listed here.

MediaWiki provides extensions with two ways of extending core tests, both of which can be used:

Technical details:

  • Extensions must support installation by simply requireing its setup file in LocalSettings.php.
  • If the extension needs to setup extra DB tables, it should be possible to perform with maintenance/update.php (use the LoadExtensionSchemaUpdates hook).
  • Extensions should support SQLite which is used on the server. If extra tables are needed for normal operation, but not for tests, extensions should take care to at least not break update.php.
  • Extensions should support running tests when not under extensions/ directory in MediaWiki installation root.