From 23bf963cf07650f4f21b9f4236dad6f7f769f7bf Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Mon, 20 Oct 2025 22:17:36 +0200 Subject: [PATCH] gitlab: run ostree manifest generation and builds only when needed With the way the gitlab-ci.yml was generated before, we've been running some useless jobs. On CentOS 10, RHEL 10, and RHEL 7 distros, there are no ostree-based image types. The 'generate-ostree-build-config' job would then run 'gen-manifests' for ostree-based image type names, produce no manifests, and end successfully with no builds queued for the next step. This is wasteful. Let's stop doing this. --- .gitlab-ci.yml | 297 -------------------------------- test/scripts/generate-gitlab-ci | 7 + 2 files changed, 7 insertions(+), 297 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e4334a72e3..6a8456d473 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1223,50 +1223,6 @@ fail: needs: - "generate-build-config: [rhel-9.8, x86_64]" -"generate-ostree-build-config: [centos-10, aarch64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-aarch64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro centos-10 --arch aarch64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [centos-10, aarch64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [centos-10, x86_64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-x86_64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro centos-10 --arch x86_64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [centos-10, x86_64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - "generate-ostree-build-config: [centos-9, aarch64]": stage: ostree-gen extends: .terraform @@ -1487,160 +1443,6 @@ fail: - .cache/osbuild-images -"generate-ostree-build-config: [rhel-10.0, aarch64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-aarch64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.0 --arch aarch64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.0, aarch64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-10.0, x86_64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-x86_64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.0 --arch x86_64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.0, x86_64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-10.1, aarch64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-aarch64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.1 --arch aarch64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.1, aarch64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-10.1, x86_64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-x86_64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.1 --arch x86_64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.1, x86_64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-10.2, aarch64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-aarch64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.2 --arch aarch64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.2, aarch64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-10.2, x86_64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-x86_64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-10.2 --arch x86_64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-10.2, x86_64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - -"generate-ostree-build-config: [rhel-7.9, x86_64]": - stage: ostree-gen - extends: .terraform - variables: - RUNNER: aws/fedora-42-x86_64 - INTERNAL_NETWORK: "true" - script: - - sudo ./test/scripts/setup-osbuild-repo - - sudo ./test/scripts/install-dependencies - - ./test/scripts/generate-ostree-build-config --distro rhel-7.9 --arch x86_64 build-config.yml build-configs - artifacts: - paths: - - build-config.yml - - build-configs - needs: - - "image-build-trigger: [rhel-7.9, x86_64]" - cache: - key: testcache - paths: - - .cache/osbuild-images - - "generate-ostree-build-config: [rhel-8.10, aarch64]": stage: ostree-gen extends: .terraform @@ -2080,28 +1882,6 @@ fail: paths: - .cache/osbuild-images -"image-build-ostree-trigger: [centos-10, aarch64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [centos-10, aarch64]" - strategy: depend - needs: - - "generate-ostree-build-config: [centos-10, aarch64]" - - -"image-build-ostree-trigger: [centos-10, x86_64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [centos-10, x86_64]" - strategy: depend - needs: - - "generate-ostree-build-config: [centos-10, x86_64]" - - "image-build-ostree-trigger: [centos-9, aarch64]": stage: ostree-build trigger: @@ -2212,83 +1992,6 @@ fail: - "generate-ostree-build-config: [fedora-44, x86_64]" -"image-build-ostree-trigger: [rhel-10.0, aarch64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.0, aarch64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.0, aarch64]" - - -"image-build-ostree-trigger: [rhel-10.0, x86_64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.0, x86_64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.0, x86_64]" - - -"image-build-ostree-trigger: [rhel-10.1, aarch64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.1, aarch64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.1, aarch64]" - - -"image-build-ostree-trigger: [rhel-10.1, x86_64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.1, x86_64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.1, x86_64]" - - -"image-build-ostree-trigger: [rhel-10.2, aarch64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.2, aarch64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.2, aarch64]" - - -"image-build-ostree-trigger: [rhel-10.2, x86_64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-10.2, x86_64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-10.2, x86_64]" - - -"image-build-ostree-trigger: [rhel-7.9, x86_64]": - stage: ostree-build - trigger: - include: - - artifact: build-config.yml - job: "generate-ostree-build-config: [rhel-7.9, x86_64]" - strategy: depend - needs: - - "generate-ostree-build-config: [rhel-7.9, x86_64]" - - "image-build-ostree-trigger: [rhel-8.10, aarch64]": stage: ostree-build trigger: diff --git a/test/scripts/generate-gitlab-ci b/test/scripts/generate-gitlab-ci index 8639dc0255..5da9c71b48 100755 --- a/test/scripts/generate-gitlab-ci +++ b/test/scripts/generate-gitlab-ci @@ -8,6 +8,7 @@ import imgtestlib as testlib ARCHITECTURES = ["x86_64", "aarch64"] MANIFEST_ONLY_ARCHES = ["ppc64le", "s390x"] RUNNER = testlib.get_common_ci_runner() +OSTREE_DISTROS = ["fedora", "rhel-8", "rhel-9", "centos-9"] BASE_CONFIG = """--- @@ -175,6 +176,12 @@ def main(): runner=RUNNER, cache=cache)) + for ostree_distro_prefix in OSTREE_DISTROS: + if img["distro"].startswith(ostree_distro_prefix): + break + else: + continue + ostree_gen_stage.append(OSTREE_GEN_TEMPLATE.format( distro=img["distro"], arch=img["arch"],