Continuous integration/Legacy server
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
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:
$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
require
ing 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.