aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2020-06-22 22:27:28 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2020-06-24 22:43:38 +0300
commit08f29c18123f1c77866638b9c595a6c2fff163b3 (patch)
tree14a141d873acb779e203b02d8092cc84cc712d43
parent83df219747088ec1278cb66ca29d09645185218f (diff)
downloadmeson-08f29c18123f1c77866638b9c595a6c2fff163b3.zip
meson-08f29c18123f1c77866638b9c595a6c2fff163b3.tar.gz
meson-08f29c18123f1c77866638b9c595a6c2fff163b3.tar.bz2
docs: Add initial docs for the Meson CI [skip ci]
-rw-r--r--docs/markdown/MesonCI.md53
-rw-r--r--docs/sitemap.txt1
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