parent
83df219747
commit
08f29c1812
2 changed files with 54 additions and 0 deletions
@ -0,0 +1,53 @@ |
||||
# 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. |
Loading…
Reference in new issue