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>
This commit is contained in:
Miroslav Vadkerti
2025-05-01 00:41:01 +00:00
committed by ngompa
parent c3e509d22e
commit 28f7cf0cf6
4 changed files with 454 additions and 5 deletions
+404 -5
View File
@@ -1,20 +1,382 @@
--- ---
- job: - job:
name: build-images-x86_64 name: build-images-x86_64/asahi/build-fex-rootfs
parent: tmt-test parent: tmt-test
vars: vars:
tmt_url: "https://pagure.io/{{ zuul.project.name }}" tmt_url: "https://pagure.io/{{ zuul.project.name }}"
tmt_ref: "{{ zuul.ref }}" tmt_ref: "{{ zuul.ref }}"
tmt_plan: "/tmt/plans/asahi/build-fex-rootfs"
distro: fedora-rawhide distro: fedora-rawhide
compose: Fedora-latest compose: Fedora-latest
tf_arch: x86_64 tf_arch: x86_64
- job: - job:
name: build-images-aarch64 name: build-images-x86_64/cloud/base/build-aws
parent: tmt-test parent: tmt-test
vars: vars:
tmt_url: "https://pagure.io/{{ zuul.project.name }}" tmt_url: "https://pagure.io/{{ zuul.project.name }}"
tmt_ref: "{{ zuul.ref }}" 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/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 distro: fedora-rawhide
compose: Fedora-latest compose: Fedora-latest
tf_arch: aarch64 tf_arch: aarch64
@@ -22,5 +384,42 @@
- project: - project:
check: check:
jobs: 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
+26
View File
@@ -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 %}
Executable
+16
View File
@@ -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))
+8
View File
@@ -1,3 +1,4 @@
# fedora-kiwi-descriptions # fedora-kiwi-descriptions
This project is used to manage the Fedora KIWI image descriptions used in composing Fedora release images. 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) 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/). 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 ## Licensing
This is free software: you can redistribute it and/or modify This is free software: you can redistribute it and/or modify