Revision 2 as of 2021-02-01 16:00:59

Clear message

Back to developer page.

Github Actions

Github actions is the continuous integration tool of Github. Actions are setup using so-called workflows, where each workflow possibly consists of different jobs. Actions can be triggered by events on the repository such as pushes, pull request and others.

We currently have implemented some basic Github actions which run a subset of the tests that the buildbot, our current continuous integration tool, runs. All of them are triggered by pushing commits to the main repository and by pushing to pull requests opened against the main repository.

There are two workflows which run on the "latest version" of Windows and MacOS (as provided by Github through Docker images). Here, we use the default compilers shipped with these OS versions and only run the translator and standard config tests, i.e., we run tox -e translator,search.

There is a workflow for Ubuntu that runs different combinations of different versions of Ubuntu, Python and compilers. The current idea is to run the actions on the two latest LTS releases of Ubuntu. On the older one, we use the default versions of GCC and CLANG. On the newer one, we additionally use the newest versions of GCC and CLANG available. On the older one, we use Python 3.6 (the current minimal version required), on the newer one, additionally Python 3.8 (the most recent version compatible). These versions should be adapted once we decided on rules on how to determine and update the requirements more generally, see issue1003.

On both Ubuntu versions, we compile with CPLEX and SOPLEX if the Github actions "secret" (the URL from where the installers can be retrieved) is setup. See issues issue970 and issue971 on licensing. For the main repository, secrets are set up, which means that commits on the main repo always trigger builds with LP solvers. For commits pushed to pull requests, the secrets need to be set up on the fork the pull request was opened from. If they are not set up, the builds will not use LP solvers. If you want to set up secrets, contact Silvan.

The following lists the current combinations of versions we test. We only run the tests on the default GCC version and not with all compilers.

We also want to discuss if we want to replace our the buildbot by Github actions eventually: issue1001