Meson CI setup
This document is aimed for Meson contributors and documents the CI setup used for testing Meson itself. The Meson project uses multiple CI platforms for covering a wide range of target systems.
The configuration files for GitHub actions are located in
.github/workflows. Here, all images are tested
with the full
run_tests.py run. Additionally, some other, smaller,
tests are run.
The Linux docker images are automatically built and uploaded by GitHub
actions. An image rebuild is triggered when any of the image definition
files are changed (in
ci/ciimage) in the master branch.
Additionally, the images are also updated weekly.
Each docker image has one corresponding directory in
image.json and an
There are no manual Dockerfiles. Instead the Dockerfile is
automatically generated by the
build.py script. This is done to
ensure that all images have the same layout and can all be built and
The Dockerfile is generated from the
image.json file and basically
only adds a few common files and runs the
install.sh script which
should contain all distribution specific setup steps. The
can be sourced via
source /ci/common.sh to access some shared
To generate the image run
build.py -t build <image>. A generated
image can be tested with
build.py -t test <image>.
Common image setup
Each docker image has a
/ci directory with an
This script has to be sourced before running the Meson test suite.
The results of the search are