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 travis configuration file is the
.travis.yml in the
the project root. This platform tests cross compilation and
unity builds on a linux docker image and
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 triggerd
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 dirctory in
ci/ciimage with an
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 tested automatically.
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
common.sh can be sourced via
source /ci/common.sh to access some shared functionalety.
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
env_vars.sh script. This script has to be sourced before
running the meson test suite.
The results of the search are