Continuous integration/Legacy server
This document is obsolete. The new workflow is documented at Continuous integration
The Wikimedia continuous integration server is a virtual box that runs CruiseControl + phpUnderControl continuous integration builds. It is located at <http://ci.tesla.usability.wikimedia.org>.
Using[edit | edit source]
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 IRC channel.
For server admins[edit | edit source]
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 | edit source]
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 | edit source]
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:
- $wgParserTestFiles - convenient for extensions that extend wikitext syntax. (currently broken)
- UnitTestsList hook for extensions that use PHPUnit.
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.