The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.8 KiB
54 lines
1.8 KiB
5 years ago
|
# 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.
|
||
|
|
||
|
## Travis CI
|
||
|
|
||
|
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](#docker-images) and
|
||
|
on OSX.
|
||
|
|
||
|
## GitHub actions
|
||
|
|
||
|
The configuration files for GitHub actions are located in
|
||
|
`.github/workflows`. Here, all [images](#docker-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 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 `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 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.
|