diff --git a/.zuul.yaml b/.zuul.yaml index 9cee90813..fa369deec 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -45,139 +45,244 @@ nodes: - name: fedora-rawhide label: cloud-fedora-rawhide - pre-run: playbooks/setup-env-restricted.yaml + vars: + dependencies_playbook: dependencies-fedora-restricted.yaml + pre-run: playbooks/setup-env.yaml run: playbooks/unit-test.yaml +- job: + name: system-test-fedora + abstract: true + timeout: 6300 + pre-run: playbooks/setup-env.yaml + +- job: + name: system-test-fedora-rawhide + abstract: true + parent: system-test-fedora + 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 - timeout: 7200 nodeset: nodes: - name: fedora-rawhide label: cloud-fedora-rawhide - pre-run: playbooks/setup-env.yaml 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 - 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 - 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: + name: system-test-fedora-coreos + abstract: true + parent: system-test-fedora + voting: false + vars: + dependencies_playbook: dependencies-fedora-coreos.yaml + # Redirect installs from read-only /usr to writable /usr/local + meson_setup_args: >- + -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: @@ -195,6 +300,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 @@ -212,6 +326,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 @@ -229,3 +352,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-common.yaml b/playbooks/dependencies-common.yaml new file mode 100644 index 000000000..3d7f135d4 --- /dev/null +++ b/playbooks/dependencies-common.yaml @@ -0,0 +1,58 @@ +# +# 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: Ensure subordinate ID ranges exist for zuul-worker + become: yes + lineinfile: + create: true + path: "{{ item.file }}" + regexp: "^zuul-worker:" + line: "zuul-worker:524288:65536" + with_items: + - { file: /etc/subgid } + - { file: /etc/subuid } + +- name: Force Podman to refresh user namespace mappings + become: yes + command: podman system migrate + ignore_errors: true + +- 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: Show OS release information + 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 + +- name: Show podman versions + command: podman version + +- name: Show podman debug information + command: podman info --debug diff --git a/playbooks/dependencies-fedora-coreos.yaml b/playbooks/dependencies-fedora-coreos.yaml new file mode 100644 index 000000000..33edb522d --- /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: Sync 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: Sync 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 via rpm-ostree + become: yes + command: >- + rpm-ostree install -y --apply-live --idempotent --allow-inactive + ShellCheck + bats + codespell + fish + gcc + golang + golang-github-cpuguy83-md2man + httpd-tools + meson + ninja-build + shadow-utils-subid-devel + udisks2 + +- include_tasks: dependencies-common.yaml diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml index 069c87cfd..eebb2e887 100644 --- a/playbooks/dependencies-fedora.yaml +++ b/playbooks/dependencies-fedora.yaml @@ -39,22 +39,6 @@ - udisks2 use: "{{ 'dnf' if zuul.attempts > 1 else 'auto' }}" -- name: Ensure subordinate ID ranges exist for zuul-worker - become: true - lineinfile: - create: true - path: "{{ item.file }}" - regexp: "^zuul-worker:" - line: "zuul-worker:524288:65536" - with_items: - - { file: /etc/subgid } - - { file: /etc/subuid } - -- name: Force Podman to refresh user namespace mappings - become: true - command: podman system migrate - ignore_errors: true - - name: Ensure that 'p11-kit server' is absent become: yes package: @@ -64,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 diff --git a/playbooks/setup-env-restricted.yaml b/playbooks/setup-env-restricted.yaml deleted file mode 100644 index dd0f3ba98..000000000 --- a/playbooks/setup-env-restricted.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright © 2023 – 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. -# - ---- -- hosts: all - tasks: - - include_tasks: dependencies-fedora-restricted.yaml - - - name: Set up build directory - command: meson setup builddir - args: - chdir: '{{ zuul.project.src_dir }}' diff --git a/playbooks/setup-env.yaml b/playbooks/setup-env.yaml index 93b9cff83..053f0a34a 100644 --- a/playbooks/setup-env.yaml +++ b/playbooks/setup-env.yaml @@ -17,9 +17,9 @@ --- - hosts: all tasks: - - include_tasks: dependencies-fedora.yaml + - include_tasks: "{{ dependencies_playbook | default('dependencies-fedora.yaml') }}" - name: Set up build directory - command: meson setup builddir + command: meson setup {{ meson_setup_args | default('') }} builddir args: chdir: '{{ zuul.project.src_dir }}'