diff options
-rw-r--r-- | docs/markdown/MesonCI.md | 53 | ||||
-rw-r--r-- | docs/sitemap.txt | 1 |
2 files changed, 54 insertions, 0 deletions
diff --git a/docs/markdown/MesonCI.md b/docs/markdown/MesonCI.md new file mode 100644 index 0000000..73b979b --- /dev/null +++ b/docs/markdown/MesonCI.md @@ -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. diff --git a/docs/sitemap.txt b/docs/sitemap.txt index 1aef1c1..be1d908 100644 --- a/docs/sitemap.txt +++ b/docs/sitemap.txt @@ -118,5 +118,6 @@ index.md Using-multiple-build-directories.md Vs-External.md Contributing.md + MesonCI.md legal.md Videos.md |