gtk/.gitlab-ci
René de Hesselle 0d9bbc9d64 ci: Check for SDKROOT environment variable
The SDKROOT variable is _the_ "master switch" to set the target
OS version (much stricter compared to MACOSX_DEPLOYMENT_TARGET alone),
yet it has no impact on the output of 'xcodebuild -showsdks'.

Also rename the script to 'macos', it's not being called 'osx' anymore
since 2016 (Sierra).
2024-02-18 20:40:20 +01:00
..
pages
.fedora.Dockerfile.swp ci: Update the fedora image for F39 2023-11-27 09:51:14 -05:00
.lock
clang-format-diff.py
fedora.Dockerfile ci: Update the fedora image for F39 2023-11-27 09:51:14 -05:00
flatpak-build.sh Flatpak builds pass the commit sha as environment variable 2024-01-16 20:45:01 +01:00
meson-html-report.py ci: Handle deprecation warnings in report scripts 2023-11-25 11:21:48 -05:00
meson-junit-report.py ci: Handle deprecation warnings in report scripts 2023-11-25 11:21:48 -05:00
README.md
run-docker.sh ci: Make run-docker run work 2023-05-04 11:38:55 -04:00
run-single-test.sh Add a single test runner 2023-07-30 13:29:36 +03:00
run-style-check-diff.sh ci: Improve style check script 2022-09-09 19:41:42 -04:00
run-tests.sh ci: Tweak the run-tests script 2023-11-25 10:37:39 -05:00
show-info-linux.sh
show-info-macos.sh ci: Check for SDKROOT environment variable 2024-02-18 20:40:20 +01:00
test-docker.sh
test-msvc.bat build: Enable Vulkan by default 2024-01-07 14:47:22 +01:00
test-msys2.sh build: Enable Vulkan on msys CI 2024-01-07 14:47:22 +01:00

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, or latest

See the container registry for the available images for each branch, as well as their available versions.

Note that using latest as version number will overwrite the most recently uploaded image in the registry.

Checklist for Updating a CI image

  • Update the ${image}.Dockerfile file with the dependencies
  • Run ./run-docker.sh build --base ${image} --version ${number}
  • Run ./run-docker.sh push --base ${image} --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} --version ${number}
  • Run ./run-docker.sh push --base ${image} --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:

  1. Build and upload fedora-base:$version+1
  2. Build and upload fedora:$version+1 based on fedora-base:version+1