/!\ This page is primarily intended for Mercurial's developers.


Mercurial uses Buildbot for continuous integration and testing, located at https://buildbot.mercurial-scm.org/.

It does automated building and test runs on different systems (OS, Python version) and shows the results.

1. Responsibilities

See ProjectInfrastructure.

Did my patches pass the tests? (enter the full commit name in the box: your name <email@example.com>)

Output of the last run of the tests (non stable repo): (../builds/-1/ is currently running or last finished build)

Which builds did fail and how long did they run?

last failed builds as a feed

(ideas found on waterfall/help and buildbot doc)

3. Setting up a build worker

As of this writing, we have builds running the test suite on Linux and FreeBSD. We would like to run regular builds on more platforms. If you have access to an Internet-connected machine (even behind an firewall) running another platform and you'd like to set up a build worker, the basic steps are:

  1. Set up a working Python environment (mainly Python 2 is required--we are in the process of porting to Python3 and can run some basic tests if your environment also has that available). virtualenv is recommended for this.

  2. Contact mercurial-infrastructure@mercurial-scm.org to coordinate setting up the worker.

  3. Exchange a passphrase with the infrastructure team. This will be used for the worker to connect to the buildmaster.
  4. Install the buildbot-slave package from PyPI.
  5. Run buildslave create-slave to create the worker config (see buildslave create-slave --help for details). The buildmaster can be reached at buildbot.mercurial-scm.org:9989.

  6. Fill in the host info as described in the Buildbot manual. In particular, put your own name in info/admin and a description of the platform (e.g. Debian GNU/Linux 8.2 (jessie)) in info/host.

  7. Start the worker.

It's not necessary to open an incoming port for the buildworker; the worker will contact the buildmaster for instructions.