gtk/.gitlab-ci
Jonas Ådahl 66ebc660b4 wayland/surface: Use wl_surface_offset() instead of x,y of attach()
This makes the hotspot of DND surfaces work when using the Vulkan and
OpenGL renderers.

This bumps the CI image used to the newly built image. This is needed to
install a new enough libwayland-client.so needed for wl_surface.offset.

This is done by adding wayland as a meson subproject, building it
on-demand if the version in the system is not new enough. As
libwayland-client.so is pulled in implicitly when linking to gtk4, the
compile step needs LD_LIBRARY_PATH set to make ld find the right library
to link to.
2022-01-14 09:27:07 +01:00
..
pages docs: Add a side bar to the docs.gtk.org landing page 2021-03-23 14:58:03 +00:00
.lock ci: Add a build with asan 2020-07-09 19:43:06 -04:00
clang-format-diff.py ci: Add a style check pass 2020-02-11 14:47:22 +00:00
fedora.Dockerfile wayland/surface: Use wl_surface_offset() instead of x,y of attach() 2022-01-14 09:27:07 +01:00
flatpak-build.sh Update references to master in the repository 2021-11-29 17:37:49 -05:00
meson-html-report.py Update references to master in the repository 2021-11-29 17:37:49 -05:00
meson-junit-report.py Update references to master in the repository 2021-11-29 17:37:49 -05:00
README.md Rename base version argument in run-docker.sh 2021-03-11 16:37:29 +00:00
run-docker.sh Rename base version argument in run-docker.sh 2021-03-11 16:37:29 +00:00
run-style-check-diff.sh Update references to master in the repository 2021-11-29 17:37:49 -05:00
run-tests.sh testsuite: Add run for GLES 2021-10-09 06:27:21 +02:00
show-info-linux.sh ci: Show OS release for our containers 2021-05-05 16:22:32 -04:00
show-info-osx.sh ci: Show OS release for our containers 2021-05-05 16:22:32 -04:00
test-docker.sh build: disable Vulkan by default 2021-07-20 14:00:25 -04:00
test-msvc.bat ci: Use meson 0.59 for msvc 2021-12-10 12:14:04 -05:00
test-msys2.sh ci: Add pygobject to the MSYS2 job 2021-12-19 16:26:37 +00: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.

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