From 52b2643eec8a54fb960edff46f80ae1f8802993f Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Mon, 3 Aug 2026 16:05:25 +0200 Subject: [PATCH 1/4] playbooks: Refactor common code into a file This will be used by a subsequent commit to add Fedora CoreOS jobs. https://github.com/containers/toolbox/issues/714 Signed-off-by: Rolv Apneseth --- playbooks/dependencies-centos-9-stream.yaml | 24 +------------ playbooks/dependencies-common.yaml | 39 +++++++++++++++++++++ playbooks/dependencies-fedora.yaml | 24 +------------ 3 files changed, 41 insertions(+), 46 deletions(-) create mode 100644 playbooks/dependencies-common.yaml diff --git a/playbooks/dependencies-centos-9-stream.yaml b/playbooks/dependencies-centos-9-stream.yaml index 1c6dd3c18..5d4fe373d 100644 --- a/playbooks/dependencies-centos-9-stream.yaml +++ b/playbooks/dependencies-centos-9-stream.yaml @@ -45,26 +45,4 @@ - p11-kit-server state: absent -- name: Download Go modules - command: go mod download -x - args: - chdir: '{{ zuul.project.src_dir }}/src' - -- name: Initialize Git submodules - command: git submodule init - args: - chdir: '{{ zuul.project.src_dir }}' - -- name: Update Git submodules - command: git submodule update - args: - chdir: '{{ zuul.project.src_dir }}' - -- name: Check versions of crucial packages - command: rpm -qa ShellCheck bash bash-completion bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - -- name: Show podman versions - command: podman version - -- name: Show podman debug information - command: podman info --debug +- include_tasks: dependencies-common.yaml diff --git a/playbooks/dependencies-common.yaml b/playbooks/dependencies-common.yaml new file mode 100644 index 000000000..4f8278cfb --- /dev/null +++ b/playbooks/dependencies-common.yaml @@ -0,0 +1,39 @@ +# +# Copyright © 2026 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +- name: Download Go modules + command: go mod download -x + args: + chdir: '{{ zuul.project.src_dir }}/src' + +- name: Initialize Git submodules + command: git submodule init + args: + chdir: '{{ zuul.project.src_dir }}' + +- name: Update Git submodules + command: git submodule update + args: + chdir: '{{ zuul.project.src_dir }}' + +- name: Check versions of crucial packages + command: rpm -qa ShellCheck bash bash-completion bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo + +- name: Show podman versions + command: podman version + +- name: Show podman debug information + command: podman info --debug diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml index d125888b0..eebb2e887 100644 --- a/playbooks/dependencies-fedora.yaml +++ b/playbooks/dependencies-fedora.yaml @@ -48,26 +48,4 @@ update_cache: "{{ true if zuul.attempts > 1 else false }}" use: "{{ 'dnf' if zuul.attempts > 1 else 'auto' }}" -- name: Download Go modules - command: go mod download -x - args: - chdir: '{{ zuul.project.src_dir }}/src' - -- name: Initialize Git submodules - command: git submodule init - args: - chdir: '{{ zuul.project.src_dir }}' - -- name: Update Git submodules - command: git submodule update - args: - chdir: '{{ zuul.project.src_dir }}' - -- name: Check versions of crucial packages - command: rpm -qa ShellCheck bash bash-completion bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - -- name: Show podman versions - command: podman version - -- name: Show podman debug information - command: podman info --debug +- include_tasks: dependencies-common.yaml From 6f6a22fe584c9e6e29a5aa85c09f9c0f6fc148c8 Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Mon, 3 Aug 2026 16:05:38 +0200 Subject: [PATCH 2/4] playbooks/dependencies-common: Identify different Fedora variants https://github.com/containers/toolbox/issues/714 Signed-off-by: Rolv Apneseth --- playbooks/dependencies-common.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/playbooks/dependencies-common.yaml b/playbooks/dependencies-common.yaml index 4f8278cfb..2e413fb9c 100644 --- a/playbooks/dependencies-common.yaml +++ b/playbooks/dependencies-common.yaml @@ -29,6 +29,9 @@ args: chdir: '{{ zuul.project.src_dir }}' +- name: Show os-release(5) + command: cat /etc/os-release + - name: Check versions of crucial packages command: rpm -qa ShellCheck bash bash-completion bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo From 8ca7baf4c87d7f59d21e2752b40b725c3e117b9b Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Thu, 11 Jun 2026 15:10:22 +0100 Subject: [PATCH 3/4] .zuul, playbooks: Run the CI on Fedora CoreOS Add system tests across the stable, next and testing Fedora CoreOS streams. https://github.com/containers/toolbox/issues/714 Signed-off-by: Rolv Apneseth --- .zuul.yaml | 130 ++++++++++++++++++++++ playbooks/dependencies-fedora-coreos.yaml | 53 +++++++++ 2 files changed, 183 insertions(+) create mode 100644 playbooks/dependencies-fedora-coreos.yaml diff --git a/.zuul.yaml b/.zuul.yaml index c444d0e6e..649f63216 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -190,6 +190,109 @@ pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-ubuntu.yaml +- job: + name: system-test-fedora-coreos + abstract: true + pre-run: playbooks/setup-env.yaml + timeout: 6300 + vars: + dependencies_playbook: dependencies-fedora-coreos.yaml + meson_setup_args: >- + -Dbash_completions_dir=/usr/local/share/bash-completion/completions + -Dfish_completions_dir=/usr/local/share/fish/vendor_completions.d + -Dprofile_dir=/usr/local/share/profile.d + -Dtmpfiles_dir=/usr/local/lib/tmpfiles.d + +- job: + name: system-test-fedora-coreos-next-commands-options + parent: system-test-fedora-coreos + description: Run Toolbx's commands-options system tests in Fedora CoreOS next + nodeset: + nodes: + - name: fedora-coreos-next + label: cloud-fedora-coreos-next + run: playbooks/system-test-commands-options.yaml + +- job: + name: system-test-fedora-coreos-next-runtime-environment-arch-fedora + parent: system-test-fedora-coreos + description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora CoreOS next + nodeset: + nodes: + - name: fedora-coreos-next + label: cloud-fedora-coreos-next + run: playbooks/system-test-runtime-environment-arch-fedora.yaml + +- job: + name: system-test-fedora-coreos-next-runtime-environment-ubuntu + parent: system-test-fedora-coreos + description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora CoreOS next + nodeset: + nodes: + - name: fedora-coreos-next + label: cloud-fedora-coreos-next + run: playbooks/system-test-runtime-environment-ubuntu.yaml + +- job: + name: system-test-fedora-coreos-stable-commands-options + parent: system-test-fedora-coreos + description: Run Toolbx's commands-options system tests in Fedora CoreOS stable + nodeset: + nodes: + - name: fedora-coreos-stable + label: cloud-fedora-coreos-stable + run: playbooks/system-test-commands-options.yaml + +- job: + name: system-test-fedora-coreos-stable-runtime-environment-arch-fedora + parent: system-test-fedora-coreos + description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora CoreOS stable + nodeset: + nodes: + - name: fedora-coreos-stable + label: cloud-fedora-coreos-stable + run: playbooks/system-test-runtime-environment-arch-fedora.yaml + +- job: + name: system-test-fedora-coreos-stable-runtime-environment-ubuntu + parent: system-test-fedora-coreos + description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora CoreOS stable + nodeset: + nodes: + - name: fedora-coreos-stable + label: cloud-fedora-coreos-stable + run: playbooks/system-test-runtime-environment-ubuntu.yaml + +- job: + name: system-test-fedora-coreos-testing-commands-options + parent: system-test-fedora-coreos + description: Run Toolbx's commands-options system tests in Fedora CoreOS testing + nodeset: + nodes: + - name: fedora-coreos-testing + label: cloud-fedora-coreos-testing + run: playbooks/system-test-commands-options.yaml + +- job: + name: system-test-fedora-coreos-testing-runtime-environment-arch-fedora + parent: system-test-fedora-coreos + description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora CoreOS testing + nodeset: + nodes: + - name: fedora-coreos-testing + label: cloud-fedora-coreos-testing + run: playbooks/system-test-runtime-environment-arch-fedora.yaml + +- job: + name: system-test-fedora-coreos-testing-runtime-environment-ubuntu + parent: system-test-fedora-coreos + description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora CoreOS testing + nodeset: + nodes: + - name: fedora-coreos-testing + label: cloud-fedora-coreos-testing + run: playbooks/system-test-runtime-environment-ubuntu.yaml + - project: periodic: jobs: @@ -205,6 +308,15 @@ - system-test-fedora-42-commands-options - system-test-fedora-42-runtime-environment-arch-fedora - system-test-fedora-42-runtime-environment-ubuntu + - system-test-fedora-coreos-next-commands-options + - system-test-fedora-coreos-next-runtime-environment-arch-fedora + - system-test-fedora-coreos-next-runtime-environment-ubuntu + - system-test-fedora-coreos-stable-commands-options + - system-test-fedora-coreos-stable-runtime-environment-arch-fedora + - system-test-fedora-coreos-stable-runtime-environment-ubuntu + - system-test-fedora-coreos-testing-commands-options + - system-test-fedora-coreos-testing-runtime-environment-arch-fedora + - system-test-fedora-coreos-testing-runtime-environment-ubuntu check: jobs: - unit-test @@ -222,6 +334,15 @@ - system-test-fedora-42-commands-options - system-test-fedora-42-runtime-environment-arch-fedora - system-test-fedora-42-runtime-environment-ubuntu + - system-test-fedora-coreos-next-commands-options + - system-test-fedora-coreos-next-runtime-environment-arch-fedora + - system-test-fedora-coreos-next-runtime-environment-ubuntu + - system-test-fedora-coreos-stable-commands-options + - system-test-fedora-coreos-stable-runtime-environment-arch-fedora + - system-test-fedora-coreos-stable-runtime-environment-ubuntu + - system-test-fedora-coreos-testing-commands-options + - system-test-fedora-coreos-testing-runtime-environment-arch-fedora + - system-test-fedora-coreos-testing-runtime-environment-ubuntu gate: jobs: - unit-test @@ -239,3 +360,12 @@ - system-test-fedora-42-commands-options - system-test-fedora-42-runtime-environment-arch-fedora - system-test-fedora-42-runtime-environment-ubuntu + - system-test-fedora-coreos-next-commands-options + - system-test-fedora-coreos-next-runtime-environment-arch-fedora + - system-test-fedora-coreos-next-runtime-environment-ubuntu + - system-test-fedora-coreos-stable-commands-options + - system-test-fedora-coreos-stable-runtime-environment-arch-fedora + - system-test-fedora-coreos-stable-runtime-environment-ubuntu + - system-test-fedora-coreos-testing-commands-options + - system-test-fedora-coreos-testing-runtime-environment-arch-fedora + - system-test-fedora-coreos-testing-runtime-environment-ubuntu diff --git a/playbooks/dependencies-fedora-coreos.yaml b/playbooks/dependencies-fedora-coreos.yaml new file mode 100644 index 000000000..d676cb9f4 --- /dev/null +++ b/playbooks/dependencies-fedora-coreos.yaml @@ -0,0 +1,53 @@ +# +# Copyright © 2026 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +- name: Synchronize glibc to repo version for gcc/glibc-devel compatibility + become: yes + command: >- + rpm-ostree override replace --experimental --from repo=updates + glibc + glibc-common + glibc-minimal-langpack + glibc-gconv-extra + ignore_errors: yes + +- name: Synchronize shadow-utils to repo version for shadow-utils-subid-devel compatibility + become: yes + command: rpm-ostree override replace --experimental --from repo=updates shadow-utils + ignore_errors: yes + +- name: Apply base package overrides + become: yes + command: rpm-ostree apply-live --allow-replacement + ignore_errors: yes + +- name: Install RPM packages + become: yes + command: >- + rpm-ostree install --allow-inactive --apply-live --assumeyes --idempotent + ShellCheck + bats + codespell + gcc + golang + golang-github-cpuguy83-md2man + httpd-tools + meson + ninja-build + shadow-utils-subid-devel + udisks2 + +- include_tasks: dependencies-common.yaml From 92b524b385eacdf6830e235129233c01183e402d Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Wed, 17 Jun 2026 15:36:58 +0100 Subject: [PATCH 4/4] .zuul: Parameterise system test job definitions As suggested by Gemini Code Assist. https://github.com/containers/toolbox/pull/1806 Signed-off-by: Rolv Apneseth --- .zuul.yaml | 62 +++++++++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 649f63216..33a2059aa 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -56,138 +56,128 @@ dependencies_playbook: dependencies-fedora-restricted.yaml - job: - name: system-test-fedora-rawhide-commands-options - description: Run Toolbx's commands-options system tests in Fedora Rawhide + name: system-test-fedora + abstract: true + pre-run: playbooks/setup-env.yaml + timeout: 6300 + +- job: + name: system-test-fedora-rawhide + abstract: true + parent: system-test-fedora ansible-version: 11 - timeout: 7200 nodeset: nodes: - name: fedora-rawhide label: cloud-fedora-rawhide - pre-run: playbooks/setup-env.yaml + timeout: 7200 + +- job: + name: system-test-fedora-rawhide-commands-options + parent: system-test-fedora-rawhide + description: Run Toolbx's commands-options system tests in Fedora Rawhide run: playbooks/system-test-commands-options.yaml - job: name: system-test-fedora-rawhide-runtime-environment-arch-fedora + parent: system-test-fedora-rawhide description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora Rawhide - ansible-version: 11 - timeout: 7200 - nodeset: - nodes: - - name: fedora-rawhide - label: cloud-fedora-rawhide - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-arch-fedora.yaml - job: name: system-test-fedora-rawhide-runtime-environment-ubuntu + parent: system-test-fedora-rawhide description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora Rawhide - ansible-version: 11 - timeout: 7200 - nodeset: - nodes: - - name: fedora-rawhide - label: cloud-fedora-rawhide - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-ubuntu.yaml - job: name: system-test-fedora-44-commands-options + parent: system-test-fedora description: Run Toolbx's commands-options system tests in Fedora 44 - timeout: 6300 nodeset: nodes: - name: fedora-44 label: cloud-fedora-44 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-commands-options.yaml - job: name: system-test-fedora-44-runtime-environment-arch-fedora + parent: system-test-fedora description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora 44 - timeout: 6300 nodeset: nodes: - name: fedora-44 label: cloud-fedora-44 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-arch-fedora.yaml - job: name: system-test-fedora-44-runtime-environment-ubuntu + parent: system-test-fedora description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora 44 - timeout: 6300 nodeset: nodes: - name: fedora-44 label: cloud-fedora-44 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-ubuntu.yaml - job: name: system-test-fedora-43-commands-options + parent: system-test-fedora description: Run Toolbx's commands-options system tests in Fedora 43 - timeout: 6300 nodeset: nodes: - name: fedora-43 label: cloud-fedora-43 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-commands-options.yaml - job: name: system-test-fedora-43-runtime-environment-arch-fedora + parent: system-test-fedora description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora 43 - timeout: 6300 nodeset: nodes: - name: fedora-43 label: cloud-fedora-43 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-arch-fedora.yaml - job: name: system-test-fedora-43-runtime-environment-ubuntu + parent: system-test-fedora description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora 43 - timeout: 6300 nodeset: nodes: - name: fedora-43 label: cloud-fedora-43 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-ubuntu.yaml - job: name: system-test-fedora-42-commands-options + parent: system-test-fedora description: Run Toolbx's commands-options system tests in Fedora 42 - timeout: 6300 nodeset: nodes: - name: fedora-42 label: cloud-fedora-42 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-commands-options.yaml - job: name: system-test-fedora-42-runtime-environment-arch-fedora + parent: system-test-fedora description: Run Toolbx's (arch-fedora,runtime-environment) system tests in Fedora 42 - timeout: 6300 nodeset: nodes: - name: fedora-42 label: cloud-fedora-42 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-arch-fedora.yaml - job: name: system-test-fedora-42-runtime-environment-ubuntu + parent: system-test-fedora description: Run Toolbx's (runtime-environment,ubuntu) system tests in Fedora 42 - timeout: 6300 nodeset: nodes: - name: fedora-42 label: cloud-fedora-42 - pre-run: playbooks/setup-env.yaml run: playbooks/system-test-runtime-environment-ubuntu.yaml - job: