Continuous integration

From MediaWiki.org
Jump to: navigation, search

The continuous integration server is a dedicated machine (gallium) that uses Jenkins to control and execute various test builds. All tools are reachable from its homepage:

integration.wikimedia.org

We have tutorials for adding new checks and extensions.

In addition, an external Jenkins service at CloudBees regularly runs WMF browser tests across multiple browsers at Sauce Labs

Status[edit | edit source]

The gallium continuous integration server has a brother to help it run even more test than before. Lot of work has been done to polish our configuration and make it a bit more secure. An attempt to upgrade Zuul failed because it could not support our workflow (hint: it got upgraded on January 7th). Jenkins jobs are now mostly relying on shell scripts, that makes it easier to do modification of the thousands of jobs we have.

The MediaWiki release scripts have been enhanced and are even triggered whenever we cut a new release to generate a tarball automatically. A PHPUnit test suite written by Markus test basic assumption (see job).

Timo started investigating css linting, the first projects using it being oojs and VisualEditor.


Rationale[edit | edit source]

In order to improve the development process, it was proposed to consolidate a platform to run automated tests systematically at pre-commit or post-commit time.

These tests aim to check that the master branch of our repositories in git remain in an (almost) constantly deployable state. This project also relates to the will to have more frequent code deployments, as continuous integration will give us more confidence in new code if it already passed the automated tests.

Documents[edit | edit source]

Sub-pages of Continuous Integration:

Browser tests Documentation generation Git repositories
Jenkins Jenkins job builder Legacy server
Overhaul PHP CodeSniffer PHP CodeSniffer/initial run
Running locally Tutorials Tutorials/Adding a MediaWiki extension
Tutorials/Adding basic checks Workflow Workflow v1 specification
Workflow v2 specification Zuul Zuul/gearman upgrade
grunt status


See also[edit | edit source]