summaryrefslogtreecommitdiff
path: root/.gitlab-ci/README.md
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-01-29 11:01:10 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2020-02-11 13:39:52 +0000
commit9e38a70c6b526285fa6e49857606107c7ef49fea (patch)
tree98709fcbd4a6765f5cabd23d50cc3f7b36805dd3 /.gitlab-ci/README.md
parent56f9cdd99d7f18b0bad1d491108571e5307d6836 (diff)
downloadgtk+-9e38a70c6b526285fa6e49857606107c7ef49fea.tar.gz
ci: Replicate the CI image scripts from GLib
They are easier to use and document, and allow us to add new base images in the future without making a mess.
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 0000000000..3958faf001
--- /dev/null
+++ b/.gitlab-ci/README.md
@@ -0,0 +1,38 @@
+## GTK CI infrastructure
+
+GTK 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/gtk/container_registry