Differences between revisions 1 and 9 (spanning 8 versions)
Revision 1 as of 2012-04-29 10:21:40
Size: 1187
Editor: ErezKarpas
Comment:
Revision 9 as of 2020-07-08 16:38:39
Size: 2971
Comment: add link to documentation
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
== Buildbot Overview == We use [[http://trac.buildbot.net/|Buildbot]] for automated building and testing of Fast Downward. The Buildbot master for Fast Downward is located at [[http://buildbot.fast-downward.org/]]. We recommend running {{{./misc/run-all-tests}}} locally before pushing to the master repository, to catch style and compilation errors (on the same operating system) early. This script can also help you to fix any errors the Buildbot found in your code.
Line 7: Line 7:
We use [[http://trac.buildbot.net/|Buildbot]] for automated building and testing of Fast Downward.
The Buildbot master for Fast Downward is located at [[http://buildbot.fast-downward.org/]], and it currently runs
Buildbot version 0.7.12.
== Buildbot Setup ==

The setup is documented in the [[https://wiki.dmi.unibas.ch/doku.php?id=fbi:ai:infrastructure-documentation|DMI wiki]] (only accessible from the Uni Basel network).
Line 13: Line 13:
Our Buildbot is configured with 4 build types: Our Buildbot uses eight workers with different operating systems, compilers, and LP solvers:
 * Ubuntu 64-bit 16.04, GCC 5.4, CPLEX 12.8
 * Ubuntu 64-bit 16.04, GCC 5.4, no LP solver
 * Ubuntu 64-bit 18.04, GCC 8.2, CPLEX 12.8 (We call this worker the foreman and use it for builds that only need to run on a single worker)
 * Ubuntu 64-bit 18.04, GCC 8.2, no LP solver
 * Ubuntu 64-bit 18.04, clang 3.9, CPLEX 12.8
 * Ubuntu 64-bit 18.04, clang 3.9, no LP solver
 * Ubuntu 32-bit 18.04, GCC 8.2, no LP solver
 * Windows 7 64-bit, VS 2017, CPLEX 12.8
 * macOS Sierra 64-bit, AppleClang 8.0.0, no LP solver
Line 15: Line 24:
 * Quick - performs an incremental build immediately after each commit
 * Full - performs an clean build and a quick translator check 5 minutes after each commit
 * Nightly - performs a small planning test and a big translator check every night
 * Weekly - performs a big planning test and a big translator check every night
On every commit on the default branch, we run the following tests
 * A style check of the code (only on the foreman). If these tests fail, the others are not run.
 * Build tests on all workers. These are slightly different for the different operating systems
  * All Linux workers
    * We test an incremental build of the {{{release}}} configuration, followed by clean builds of the {{{release}}} and {{{debug}}} configurations. We then run all our code tests.
    * Autodoc: if the builds on all Linux workers are successful, we also update our documentation in this wiki. This is run only on the foreman.
  * Windows
    * Similar to the Linux setup, we start with in incremental build of the configuration {{{releasenolp}}} (ignoring the installed LP solver) followed by clean builds of {{{releasenolp}}} and {{{debugnolp}}}. We then test clean builds of {{{release}}} and {{{debug}}}, that use an LP solver. We do not run any code tests on Windows.
  * macOS
    * We test an incremental build of the {{{release}}} configuration, followed by clean builds of the configurations {{{release}}} and {{{debug}}}. We then run exit code tests and test some benchmark tasks. We do not include translator tests as on Linux, because we don't have a running Python3 installation.
Line 20: Line 35:
== Buildbot Operation ==

Here are some basic commands for the buildbot (master or slave):

 * Start
{{{
buildbot start BASEDIR
}}}

 * Stop
{{{
buildbot stop BASEDIR
}}}

 * Reconfig (reread configuration file without restarting)
{{{
buildbot reconfig BASEDIR
}}}

 * Restart
{{{
buildbot restart BASEDIR
}}}

BASEDIR is the location of the buildbot configuration file (master.cfg for master, buildbot.tac for slave)
In addition to the tests that run on every commit, we run a nightly and a weekly test, that both run some default configurations on the first problem of Gripper and Miconic to check for any performance regressions. We also have a builder that can only be triggered manually and recreates the baseline for these nightly/weekly tests.

Back to developer page.

Buildbot

We use Buildbot for automated building and testing of Fast Downward. The Buildbot master for Fast Downward is located at http://buildbot.fast-downward.org/. We recommend running ./misc/run-all-tests locally before pushing to the master repository, to catch style and compilation errors (on the same operating system) early. This script can also help you to fix any errors the Buildbot found in your code.

Buildbot Setup

The setup is documented in the DMI wiki (only accessible from the Uni Basel network).

Buildbot Configuration

Our Buildbot uses eight workers with different operating systems, compilers, and LP solvers:

  • Ubuntu 64-bit 16.04, GCC 5.4, CPLEX 12.8
  • Ubuntu 64-bit 16.04, GCC 5.4, no LP solver
  • Ubuntu 64-bit 18.04, GCC 8.2, CPLEX 12.8 (We call this worker the foreman and use it for builds that only need to run on a single worker)
  • Ubuntu 64-bit 18.04, GCC 8.2, no LP solver
  • Ubuntu 64-bit 18.04, clang 3.9, CPLEX 12.8
  • Ubuntu 64-bit 18.04, clang 3.9, no LP solver
  • Ubuntu 32-bit 18.04, GCC 8.2, no LP solver
  • Windows 7 64-bit, VS 2017, CPLEX 12.8
  • macOS Sierra 64-bit, AppleClang 8.0.0, no LP solver

On every commit on the default branch, we run the following tests

  • A style check of the code (only on the foreman). If these tests fail, the others are not run.
  • Build tests on all workers. These are slightly different for the different operating systems
    • All Linux workers
      • We test an incremental build of the release configuration, followed by clean builds of the release and debug configurations. We then run all our code tests.

      • Autodoc: if the builds on all Linux workers are successful, we also update our documentation in this wiki. This is run only on the foreman.
    • Windows
      • Similar to the Linux setup, we start with in incremental build of the configuration releasenolp (ignoring the installed LP solver) followed by clean builds of releasenolp and debugnolp. We then test clean builds of release and debug, that use an LP solver. We do not run any code tests on Windows.

    • macOS
      • We test an incremental build of the release configuration, followed by clean builds of the configurations release and debug. We then run exit code tests and test some benchmark tasks. We do not include translator tests as on Linux, because we don't have a running Python3 installation.

In addition to the tests that run on every commit, we run a nightly and a weekly test, that both run some default configurations on the first problem of Gripper and Miconic to check for any performance regressions. We also have a builder that can only be triggered manually and recreates the baseline for these nightly/weekly tests.