diff options
| author | 2025-03-12 15:29:38 +0100 | |
|---|---|---|
| committer | 2025-05-01 00:41:01 +0000 | |
| commit | 28f7cf0cf656e6be60018ae88c848841ed96bfbd (patch) | |
| tree | 0405a9f4d127f8ac5524672063ece4fbbc47b434 | |
| parent | c3e509d22eb177a1bbf99c4a1e73669048598bfc (diff) | |
| download | kiwi-descriptions-28f7cf0cf656e6be60018ae88c848841ed96bfbd.tar.gz kiwi-descriptions-28f7cf0cf656e6be60018ae88c848841ed96bfbd.zip | |
Split tmt plans into separate zuul jobs
This should improve the experience by having separate clickable
links for each test matrix item and see the pass/fail more early.
Also make Testing Farm scale better as it uses separate TF requests
for testing.
Signed-off-by: Miroslav Vadkerti <mvadkert@redhat.com>
| -rw-r--r-- | .zuul.yaml | 409 | ||||
| -rw-r--r-- | .zuul.yaml.j2 | 26 | ||||
| -rwxr-xr-x | Makefile | 16 | ||||
| -rw-r--r-- | README.md | 8 |
4 files changed, 454 insertions, 5 deletions
@@ -1,20 +1,382 @@ --- + - job: - name: build-images-x86_64 + name: build-images-x86_64/asahi/build-fex-rootfs parent: tmt-test vars: tmt_url: "https://pagure.io/{{ zuul.project.name }}" tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/asahi/build-fex-rootfs" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/cloud/base/build-aws + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-aws" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/cloud/base/build-azure + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-azure" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/cloud/base/build-gcp + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-gcp" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/cloud/base/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/cloud/base/build-uefi-uki + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-uefi-uki" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/container/base/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/container/base/build-generic-init + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic-init" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/container/base/build-generic-minimal + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic-minimal" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/container/toolbox/build-toolbox + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/toolbox/build-toolbox" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/desktop/kde/build-desktop-disk + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/kde/build-desktop-disk" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/desktop/kde/build-desktop-live + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/kde/build-desktop-live" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/desktop/workstation/build-disk + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/workstation/build-disk" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/desktop/workstation/build-live + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/workstation/build-live" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/server/guest/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/server/guest/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/server/host/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/server/host/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/vagrant/base/build-libvirt + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/vagrant/base/build-libvirt" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/vagrant/base/build-virtualbox + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/vagrant/base/build-virtualbox" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: x86_64 +- job: + name: build-images-x86_64/wsl/build + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/wsl/build" distro: fedora-rawhide compose: Fedora-latest tf_arch: x86_64 - - job: - name: build-images-aarch64 + name: build-images-aarch64/asahi/build-fex-rootfs parent: tmt-test vars: tmt_url: "https://pagure.io/{{ zuul.project.name }}" tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/asahi/build-fex-rootfs" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/cloud/base/build-aws + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-aws" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/cloud/base/build-azure + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-azure" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/cloud/base/build-gcp + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-gcp" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/cloud/base/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/cloud/base/build-uefi-uki + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/cloud/base/build-uefi-uki" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/container/base/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/container/base/build-generic-init + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic-init" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/container/base/build-generic-minimal + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/base/build-generic-minimal" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/container/toolbox/build-toolbox + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/container/toolbox/build-toolbox" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/desktop/kde/build-desktop-disk + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/kde/build-desktop-disk" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/desktop/kde/build-desktop-live + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/kde/build-desktop-live" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/desktop/workstation/build-disk + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/workstation/build-disk" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/desktop/workstation/build-live + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/desktop/workstation/build-live" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/server/guest/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/server/guest/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/server/host/build-generic + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/server/host/build-generic" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/vagrant/base/build-libvirt + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/vagrant/base/build-libvirt" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/vagrant/base/build-virtualbox + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/vagrant/base/build-virtualbox" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: aarch64 +- job: + name: build-images-aarch64/wsl/build + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ zuul.project.name }}" + tmt_ref: "{{ zuul.ref }}" + tmt_plan: "/tmt/plans/wsl/build" distro: fedora-rawhide compose: Fedora-latest tf_arch: aarch64 @@ -22,5 +384,42 @@ - project: check: jobs: - - build-images-x86_64 - - build-images-aarch64 + + - build-images-x86_64/asahi/build-fex-rootfs + - build-images-x86_64/cloud/base/build-aws + - build-images-x86_64/cloud/base/build-azure + - build-images-x86_64/cloud/base/build-gcp + - build-images-x86_64/cloud/base/build-generic + - build-images-x86_64/cloud/base/build-uefi-uki + - build-images-x86_64/container/base/build-generic + - build-images-x86_64/container/base/build-generic-init + - build-images-x86_64/container/base/build-generic-minimal + - build-images-x86_64/container/toolbox/build-toolbox + - build-images-x86_64/desktop/kde/build-desktop-disk + - build-images-x86_64/desktop/kde/build-desktop-live + - build-images-x86_64/desktop/workstation/build-disk + - build-images-x86_64/desktop/workstation/build-live + - build-images-x86_64/server/guest/build-generic + - build-images-x86_64/server/host/build-generic + - build-images-x86_64/vagrant/base/build-libvirt + - build-images-x86_64/vagrant/base/build-virtualbox + - build-images-x86_64/wsl/build + - build-images-aarch64/asahi/build-fex-rootfs + - build-images-aarch64/cloud/base/build-aws + - build-images-aarch64/cloud/base/build-azure + - build-images-aarch64/cloud/base/build-gcp + - build-images-aarch64/cloud/base/build-generic + - build-images-aarch64/cloud/base/build-uefi-uki + - build-images-aarch64/container/base/build-generic + - build-images-aarch64/container/base/build-generic-init + - build-images-aarch64/container/base/build-generic-minimal + - build-images-aarch64/container/toolbox/build-toolbox + - build-images-aarch64/desktop/kde/build-desktop-disk + - build-images-aarch64/desktop/kde/build-desktop-live + - build-images-aarch64/desktop/workstation/build-disk + - build-images-aarch64/desktop/workstation/build-live + - build-images-aarch64/server/guest/build-generic + - build-images-aarch64/server/host/build-generic + - build-images-aarch64/vagrant/base/build-libvirt + - build-images-aarch64/vagrant/base/build-virtualbox + - build-images-aarch64/wsl/build diff --git a/.zuul.yaml.j2 b/.zuul.yaml.j2 new file mode 100644 index 0000000..3e7b118 --- /dev/null +++ b/.zuul.yaml.j2 @@ -0,0 +1,26 @@ +--- +{% set arches = arches.split() -%} +{% set plans = plans.split() -%} +{% for arch in arches -%} + {% for plan in plans %} +- job: + name: build-images-{{ arch }}{{ plan | replace("/tmt/plans", "") }} + parent: tmt-test + vars: + tmt_url: "https://pagure.io/{{ '{{' }} zuul.project.name {{ '}}' }}" + tmt_ref: "{{ '{{' }} zuul.ref {{ '}}' }}" + tmt_plan: "{{ plan }}" + distro: fedora-rawhide + compose: Fedora-latest + tf_arch: {{ arch }} + {%- endfor %} +{%- endfor %} + +- project: + check: + jobs: +{% for arch in arches -%} + {% for plan in plans %} + - build-images-{{ arch }}{{ plan | replace("/tmt/plans", "") }} + {%- endfor %} +{%- endfor %} diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..df63ab8 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +.DEFAULT_GOAL := help + +# https://www.gnu.org/software/make/manual/html_node/Force-Targets.html#Force-Targets +.FORCE: + +# List of architectures to be tested +ARCHES = x86_64 aarch64 + +generate-zuul-config: .FORCE ## Generate zuul configuration from list of tmt plans + jinja2 -D arches="$(ARCHES)" -D plans="$$(tmt plan ls | tr '\n' ' ')" .zuul.yaml.j2 -o .zuul.yaml + +# See https://www.thapaliya.com/en/writings/well-documented-makefiles/ for details. +reverse = $(if $(1),$(call reverse,$(wordlist 2,$(words $(1)),$(1)))) $(firstword $(1)) + +help: .FORCE ## Show this help + @awk 'BEGIN {FS = ":.*##"; printf "$(info $(PRELUDE))"} /^[a-zA-Z_/-]+:.*?##/ { printf " \033[36m%-35s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(call reverse, $(MAKEFILE_LIST)) @@ -1,3 +1,4 @@ + # fedora-kiwi-descriptions This project is used to manage the Fedora KIWI image descriptions used in composing Fedora release images. @@ -30,6 +31,13 @@ Set up your development environment and run the image build (substitute `<image_ This project is tested using the [Software Factory Zuul CI instance](https://fedora.softwarefactory-project.io/zuul/project/pagure.io/fedora-kiwi-descriptions) using the [Test Management Tool](https://tmt.readthedocs.io/). +The Zuul configuration is generated from the Jinja2 template `.zuul.yaml.j2`. +When adding or removing a tmt plan, please run the following command to regenerate the Zuul configuration: + +```bash +[]$ make generate-zuul-config +``` + ## Licensing This is free software: you can redistribute it and/or modify |