tree: a798b49e8ca6a17af4e4d31d01ed5d9668a127d8
  1. pages/
  2. android-sdk.sh
  3. clang-format-diff.py
  4. debug.keystore
  5. flatpak-build.sh
  6. install-meson-project.sh
  7. meson-html-report.py
  8. meson-junit-report.py
  9. ProduceDebugKeystore
  10. README.md
  11. run-single-test.sh
  12. run-style-check-diff.sh
  13. run-tests.sh
  14. show-info-linux.sh
  15. show-info-macos.sh
  16. test-docker.sh
  17. test-msvc.bat
  18. test-msys2.sh
.gitlab-ci/README.md

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 FDO_DISTRIBUTION_VERSION if needed
  • [ ] Update FDO_DISTRIBUTION_PACKAGES with the dependencies
  • [ ] Update FDO_DISTRIBUTION_EXEC with new image setup commands
  • [ ] Bump BASE_TAG
  • [ ] Commit
  • [ ] Open a merge request with your changes and let it run

Checklist for Adding a new CI image

  • [ ] Add a new container:{platform} job in the prepare stage, see others for reference. This job must extend .fdo.container-build@{distro}@{arch} directly or indirectly
  • [ ] Add a .distribution.{platform} job extending .fdo.distribution-image@{distro}
  • [ ] Make every job using this image extend .distribution.{platform} and need container:{platform}
  • [ ] Commit
  • [ ] 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