summaryrefslogtreecommitdiff
path: root/.gitlab-ci/README.md
blob: 3958faf001b1067380beb7ddff72f13ac6f9d5fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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