diff options
Diffstat (limited to 'meson/docs/markdown/MesonCI.md')
-rw-r--r-- | meson/docs/markdown/MesonCI.md | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/meson/docs/markdown/MesonCI.md b/meson/docs/markdown/MesonCI.md new file mode 100644 index 000000000..65175afee --- /dev/null +++ b/meson/docs/markdown/MesonCI.md @@ -0,0 +1,43 @@ +# 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](#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. |