Differences between revisions 5 and 10 (spanning 5 versions)
Revision 5 as of 2018-12-13 16:34:46
Size: 2709
Comment: typo
Revision 10 as of 2021-03-19 15:50:44
Size: 0
Comment: Replaced by Github actions
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Back to [[ForDevelopers|developer page]].

= Buildbot =

== 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/]].

== Buildbot Configuration ==

Our Buildbot uses eight workers with different operating systems, compilers, and LP solvers:
 * Ubuntu 16.04, GCC 5.4, CPLEX 12.8
 * Ubuntu 16.04, GCC 5.4, no LP solver
 * Ubuntu 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 18.04, GCC 8.2, no LP solver
 * Ubuntu 18.04, clang 3.9, CPLEX 12.8
 * Ubuntu 18.04, clang 3.9, no LP solver
 * Windows 7, VS 2017, CPLEX 12.8
 * macOS Sierra, 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
    * 32-bit tests: we test an incremental build of the {{{release32}}} configuration, followed by clean builds of the {{{release32}}} and {{{debug32}}} configurations. We then run all our code tests.
    * 64-bit tests: if the 32-bit builds are successful, we test incremental builds of the {{{release64}}} and {{{debug64}}} configurations.
    * Autodoc: if the 32-bit builds 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 {{{release32nolp}}} (32-bit configuration, ignoring the installed LP solver) followed by clean builds of {{{release32nolp}}} and {{{debug32nolp}}}. We then test clean builds of {{{releasenative}}} and {{{debugnative}}}, that use the native 64-bit build with an LP solver. We do not run any code tests on Windows.
  * macOC
    * We test an incremental build of the {{{release32}}} configuration, followed by clean builds of the configurations {{{release32}}}, {{{debug32}}}, {{{release64}}}, and {{{debug64}}}. We then run exit code tests and test on 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.