[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