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.
GitHub actions
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.
Docker images
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 ci/ciimage
with
an image.json
and an install.sh
.
Image generation
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
functionality.
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