mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-15 05:00:09 +00:00
1.9 KiB
1.9 KiB
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.
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, orlatest
See the container 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 usingdocker login
orpodman 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
Checklist for Adding a new dependency to a CI image
Our images are layered, and the base (called fedora-base) contains all the rpm payload. Therefore, adding a new dependency is a 2-step process:
- Build and upload fedora-base:$version+1
- Build and upload fedora:$version+1 based on fedora-base:version+1