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.
53 lines
1.8 KiB
53 lines
1.8 KiB
# 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.
|
|
|