[PATCH i-g-t v1 1/2] gitlab-ci: Enable gitlab-ci-local runs from the primary CI definition file

Hajda, Andrzej andrzej.hajda at intel.com
Wed Jun 11 15:00:10 UTC 2025


W dniu 30.04.2025 o 18:33, Kamil Konieczny pisze:
> From: Ryszard Knop <dragoon at dragonic.eu>
>
> The gitlab-ci-local tool sets GITLAB_CI to "false", so we can pick which
> jobs are to be executed locally without defining them again. We just
> have to override the image to make it all work.
>
> Signed-off-by: Ryszard Knop <dragoon at dragonic.eu>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
>   .gitlab-ci-local.yml |  2 ++
>   .gitlab-ci.yml       | 30 ++++++++++++++++++++++++++++++
>   2 files changed, 32 insertions(+)
>   create mode 100644 .gitlab-ci-local.yml
>
> diff --git a/.gitlab-ci-local.yml b/.gitlab-ci-local.yml
> new file mode 100644
> index 000000000..65ccc1eec
> --- /dev/null
> +++ b/.gitlab-ci-local.yml
> @@ -0,0 +1,2 @@
> +include: .gitlab-ci.yml
> +image: build-igt-fedora
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index a6c076dba..ec7ce7bae 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -25,6 +25,8 @@ stages:
>   build-containers:build-debian:
>     stage: build-containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs


This can be achieved by either:

1 . gitlab-ci-local options to avoid build-containers stage

2. adding proper vars to .gitlab-ci-local-variables.yml, example for my 
igt fork:

CI_REGISTRY: "registry.freedesktop.org"
CI_PROJECT_PATH: "andrzej.hajda/igt-gpu-tools"
CI_COMMIT_SHA: local
CI_REGISTRY_USER: andrzej.hajda
CI_REGISTRY_PASSWORD: auth_token

With this everything passes (ok, almost):

  PASS  build-base:build-buildah
  PASS  build-containers:build-debian
  PASS  build-containers:build-debian-armhf
  PASS  build-containers:build-debian-arm64
  PASS  build-containers:build-fedora
  PASS  build:tests-fedora
  PASS  build:tests-fedora-no-libunwind
  PASS  build:tests-fedora-oldest-meson
  PASS  build:tests-fedora-no-libdrm-nouveau
  PASS  build:tests-fedora-clang
  PASS  build:tests-debian-meson
  PASS  build:tests-debian-minimal
  PASS  build:tests-debian-meson-armhf
  PASS  build:tests-debian-meson-arm64
  PASS  test:ninja-test-clang
  PASS  test:ninja-test-minimal
  PASS  test:list-undocumented-tests
  PASS  test:verify-blacklists
  FAIL  test:ninja-test
   > Skipped:            0
   > Timeout:            0
   > Full log written to 
/builds/intel-innersource/drivers.gpu.i915.igt-gpu-tools/build/meson-logs/testlog.txt
pipeline finished in 14 min


So I am not sure if we really need this.


Regards

Andrzej


>     script:
>       - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>       - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-minimal build-debian-minimal
> @@ -33,6 +35,8 @@ build-containers:build-debian:
>   build-containers:build-debian-armhf:
>     stage: build-containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>       - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-armhf build-debian-armhf
> @@ -40,6 +44,8 @@ build-containers:build-debian-armhf:
>   build-containers:build-debian-arm64:
>     stage: build-containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>       - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-arm64 build-debian-arm64
> @@ -47,6 +53,8 @@ build-containers:build-debian-arm64:
>   build-containers:build-debian-mips:
>     stage: build-containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>       - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-debian-mips build-debian-mips
> @@ -54,6 +62,8 @@ build-containers:build-debian-mips:
>   build-containers:build-fedora:
>     stage: build-containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - podman login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
>       - .gitlab-ci/pull-or-rebuild.sh base Dockerfile.build-fedora build-fedora
> @@ -74,6 +84,8 @@ build:tests-fedora:
>   
>   build:tests-fedora-no-libunwind:
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - dnf remove -y libunwind-devel
>       - meson -Dlibunwind=disabled build
> @@ -82,6 +94,8 @@ build:tests-fedora-no-libunwind:
>   # documentation building is different with meson<0.47
>   build:tests-fedora-oldest-meson:
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - dnf remove -y meson
>       - pip install /usr/src/meson-*.tar.gz
> @@ -92,6 +106,8 @@ build:tests-fedora-oldest-meson:
>   # ensure igt_nouveau stubs build when nouveau support for libdrm is disabled
>   build:tests-fedora-no-libdrm-nouveau:
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - meson -Dlibdrm_drivers= build
>       - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
> @@ -110,6 +126,8 @@ build:tests-fedora-clang:
>   build:tests-debian-meson:
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian:commit-$CI_COMMIT_SHA
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - meson $MESON_OPTIONS build
>       - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
> @@ -121,6 +139,8 @@ build:tests-debian-meson:
>   build:tests-debian-minimal:
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-minimal:commit-$CI_COMMIT_SHA
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - meson -Dtests=disabled -Dlibdrm_drivers="" build
>       - ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
> @@ -131,6 +151,8 @@ build:tests-debian-minimal:
>   build:tests-debian-meson-armhf:
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-armhf:commit-$CI_COMMIT_SHA
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/
>       - meson --cross-file meson-cross-armhf.txt build
> @@ -142,6 +164,8 @@ build:tests-debian-meson-armhf:
>   build:tests-debian-meson-arm64:
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-arm64:commit-$CI_COMMIT_SHA
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
>       - meson --cross-file meson-cross-arm64.txt build
> @@ -153,6 +177,8 @@ build:tests-debian-meson-arm64:
>   build:tests-debian-meson-mips:
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-mips:commit-$CI_COMMIT_SHA
>     stage: build
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     script:
>       - export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
>       - meson --cross-file meson-cross-mips.txt build
> @@ -180,6 +206,8 @@ test:ninja-test-clang:
>     script: meson test -C build --num-processes ${FDO_CI_CONCURRENT:-4}
>   
>   test:ninja-test-minimal:
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     retry: 2
>     image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian-minimal:commit-$CI_COMMIT_SHA
>     dependencies:
> @@ -268,6 +296,8 @@ pages:
>   ############## CONTAINERS ####################
>   
>   containers:igt:
> +  rules:
> +    - if: $GITLAB_CI == "true"  # Skip for gitlab-ci-local runs
>     stage: containers
>     image: registry.freedesktop.org/wayland/ci-templates/buildah:2019-08-13.0
>     dependencies:


More information about the igt-dev mailing list