aboutsummaryrefslogtreecommitdiff
diff options
from:
to:
context:
space:
mode:
authorGravatar Miroslav Vadkerti <mvadkert@redhat.com> 2025-03-12 15:29:38 +0100
committerGravatar ngompa <ngompa13@gmail.com> 2025-05-01 00:41:01 +0000
commit28f7cf0cf656e6be60018ae88c848841ed96bfbd (patch)
tree0405a9f4d127f8ac5524672063ece4fbbc47b434
parentc3e509d22eb177a1bbf99c4a1e73669048598bfc (diff)
downloadkiwi-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.yaml409
-rw-r--r--.zuul.yaml.j226
-rwxr-xr-xMakefile16
-rw-r--r--README.md8
4 files changed, 454 insertions, 5 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 1a0971b..2661956 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -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))
diff --git a/README.md b/README.md
index 49a8260..777bb78 100644
--- a/README.md
+++ b/README.md
@@ -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