summaryrefslogtreecommitdiff
path: root/.gitlab-ci/README.md
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-04-14 11:48:55 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2020-04-14 13:29:14 +0100
commit7b66f9604ddb4743276f38b6a17f10bf4d446583 (patch)
treea141e973ea4508263c4c164f258d112c220e7d20 /.gitlab-ci/README.md
parent6cf5295de3fd8297c9fab7d07b44e83d01753aee (diff)
downloadpango-7b66f9604ddb4743276f38b6a17f10bf4d446583.tar.gz
Improve the Pango CI pipeline on Linux
Use a scaled down version of the GTK and GLib CI set ups, with a custom Docker image and multiple stages. The CI pipeline now generates a JUnit report, which integrates with the GitLab merge requests; builds the documentation as a separate stage; and publishes the API reference for the master branch at the end.
Diffstat (limited to '.gitlab-ci/README.md')
-rw-r--r--.gitlab-ci/README.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/.gitlab-ci/README.md b/.gitlab-ci/README.md
new file mode 100644
index 00000000..a5c7736d
--- /dev/null
+++ b/.gitlab-ci/README.md
@@ -0,0 +1,38 @@
+## Pango CI infrastructure
+
+Pango uses different CI images depending on platform and jobs.
+
+The CI images are Docker containers, generated either using `docker` or
+`podman`, and pushed to the GitLab [container registry][registry].
+
+Each Docker image has a tag composed of two parts:
+
+ - `${image}`: the base image for a given platform, like "fedora" or
+ "debian-stable"
+ - `${number}`: an incremental version number, or `latest`
+
+See the [container registry][registry] for the available images for each
+branch, as well as their available versions.
+
+### Checklist for Updating a CI image
+
+ - [ ] Update the `${image}.Dockerfile` file with the dependencies
+ - [ ] Run `./run-docker.sh build --base ${image} --base-version ${number}`
+ - [ ] Run `./run-docker.sh push --base ${image} --base-version ${number}`
+ once the Docker image is built; you may need to log in by using
+ `docker login` or `podman login`
+ - [ ] Update the `image` keys in the `.gitlab-ci.yml` file with the new
+ image tag
+ - [ ] Open a merge request with your changes and let it run
+
+### Checklist for Adding a new CI image
+
+ - [ ] Write a new `${image}.Dockerfile` with the instructions to set up
+ a build environment
+ - [ ] Add the `pip3 install meson` incantation
+ - [ ] Run `./run-docker.sh build --base ${image} --base-version ${number}`
+ - [ ] Run `./run-docker.sh push --base ${image} --base-version ${number}`
+ - [ ] Add the new job to `.gitlab-ci.yml` referencing the image
+ - [ ] Open a merge request with your changes and let it run
+
+[registry]: https://gitlab.gnome.org/GNOME/pango/container_registry