aboutsummaryrefslogtreecommitdiffstats
path: root/meson/docs/markdown/MesonCI.md
diff options
context:
space:
mode:
Diffstat (limited to 'meson/docs/markdown/MesonCI.md')
-rw-r--r--meson/docs/markdown/MesonCI.md43
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.