From e10bb70d04dd6c2743822000078d9d915bcb9a6a Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Sun, 8 Jun 2025 18:55:34 -0400 Subject: [PATCH] TMT: revdep system tests This commit enables revdep tests maintained in TMT and triggered Packit jobs for Fedora and CentOS Stream. Podman, Buildah and Skopeo system tests are run for these environments on every PR. TODO: 1. Enable podman rootless tests for CentOS Stream after fixing them in podman main. 2. Enable buildah tests for aarch64 after buildah upstream handles aarch64 testing. Signed-off-by: Lokesh Mandvekar --- .fmf/version | 1 + .packit.yaml | 49 +++++++++++++++++++++++++-------- plans/buildah.fmf | 45 ++++++++++++++++++++++++++++++ plans/podman.fmf | 70 +++++++++++++++++++++++++++++++++++++++++++++++ plans/skopeo.fmf | 40 +++++++++++++++++++++++++++ 5 files changed, 193 insertions(+), 12 deletions(-) create mode 100644 .fmf/version create mode 100644 plans/buildah.fmf create mode 100644 plans/podman.fmf create mode 100644 plans/skopeo.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.packit.yaml b/.packit.yaml index 655b0db02..3e33d4159 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -24,17 +24,18 @@ jobs: - job: copr_build trigger: pull_request packages: [containers-common-fedora] - notifications: &ephemeral_build_failure_notification + notifications: &packit_failure_notification failure_comment: - message: "Ephemeral COPR build failed. @containers/packit-build please check." + message: "[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check." enable_net: true - targets: - - fedora-all + targets: &fedora_copr_targets + - fedora-all-x86_64 + - fedora-all-aarch64 - job: copr_build trigger: pull_request packages: [containers-common-eln] - notifications: *ephemeral_build_failure_notification + notifications: *packit_failure_notification enable_net: true targets: fedora-eln: @@ -47,24 +48,48 @@ jobs: - job: copr_build trigger: pull_request packages: [containers-common-centos] - notifications: *ephemeral_build_failure_notification + notifications: *packit_failure_notification enable_net: true - targets: - - centos-stream-9 - - centos-stream-10 + targets: ¢os_copr_targets + - centos-stream-10-x86_64 + - centos-stream-10-aarch64 + - centos-stream-9-x86_64 + - centos-stream-9-aarch64 # Run on commit to main branch - job: copr_build trigger: commit packages: [containers-common-fedora] - notifications: - failure_comment: - message: "podman-next COPR build failed. @containers/packit-build please check." + notifications: *packit_failure_notification branch: main owner: rhcontainerbot project: podman-next enable_net: true + - job: tests + trigger: pull_request + packages: [containers-common-fedora] + notifications: *packit_failure_notification + targets: *fedora_copr_targets + enable_net: true + tf_extra_params: + environments: + - artifacts: + - type: repository-file + id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/fedora-$releasever/rhcontainerbot-podman-next-fedora-$releasever.repo + + - job: tests + trigger: pull_request + packages: [containers-common-centos] + notifications: *packit_failure_notification + targets: *centos_copr_targets + enable_net: true + tf_extra_params: + environments: + - artifacts: + - type: repository-file + id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/centos-stream-$releasever/rhcontainerbot-podman-next-centos-stream-$releasever.repo + - job: propose_downstream trigger: release packages: [containers-common-fedora] diff --git a/plans/buildah.fmf b/plans/buildah.fmf new file mode 100644 index 000000000..35618092c --- /dev/null +++ b/plans/buildah.fmf @@ -0,0 +1,45 @@ +prepare: + - when: distro == centos-stream or distro == rhel + how: shell + script: | + BATS_VERSION=1.12.0 + curl -L https://github.com/bats-core/bats-core/archive/refs/tags/v"$BATS_VERSION".tar.gz | tar -xz + cd bats-core-"$BATS_VERSION" + ./install.sh /usr + order: 10 + - when: initiator == packit + how: shell + script: | + COPR_REPO_FILE="/etc/yum.repos.d/*podman-next*.repo" + if compgen -G $COPR_REPO_FILE > /dev/null; then + sed -i -n '/^priority=/!p;$apriority=1' $COPR_REPO_FILE + fi + dnf -y upgrade --allowerasing + order: 20 + - name: packages + how: install + package: [buildah-tests] + +discover: + how: fmf + url: https://github.com/containers/buildah + ref: "main" + test: /tests/tmt + +execute: + how: tmt + +provision: + how: artemis + hardware: + memory: ">= 16 GB" + cpu: + cores: ">= 4" + threads: ">=8" + disk: + - size: ">= 512 GB" + +# FIXME: reenable after buildah upstream fixes aarch64 testing +adjust: + enabled: false + when: arch == aarch64 diff --git a/plans/podman.fmf b/plans/podman.fmf new file mode 100644 index 000000000..7c3b54d20 --- /dev/null +++ b/plans/podman.fmf @@ -0,0 +1,70 @@ +prepare: + - when: distro == centos-stream or distro == rhel + how: shell + script: | + BATS_VERSION=1.12.0 + curl -L https://github.com/bats-core/bats-core/archive/refs/tags/v"$BATS_VERSION".tar.gz | tar -xz + cd bats-core-"$BATS_VERSION" + ./install.sh /usr + order: 10 + - when: initiator == packit + how: shell + script: | + COPR_REPO_FILE="/etc/yum.repos.d/*podman-next*.repo" + if compgen -G $COPR_REPO_FILE > /dev/null; then + sed -i -n '/^priority=/!p;$apriority=1' $COPR_REPO_FILE + fi + dnf -y upgrade --allowerasing + order: 20 + - name: packages + how: install + # podman rpm hasn't built for CentOS Stream 10 on podman-next since + # March 2025, and the last build doesn't require slirp4netns + # automatically for podman-tests so we require it here + package: [podman-tests, slirp4netns] + +discover: + how: fmf + url: https://github.com/containers/podman + ref: "main" + +execute: + how: tmt + +provision: + how: artemis + hardware: + memory: ">= 16 GB" + cpu: + cores: ">= 4" + threads: ">=8" + disk: + - size: ">= 512 GB" + +/root-local: + summary: Local rootful tests + discover+: + filter: 'tag:local & tag:root' + +/rootless-local: + summary: Local rootless tests + discover+: + filter: 'tag:local & tag:rootless' + # FIXME: reenable after journald tests are handled for RHEL on upstream + adjust: + enabled: false + when: distro == centos-stream or distro == rhel + +/root-remote: + summary: Remote rootful tests + discover+: + filter: 'tag:remote & tag:root' + +/rootless-remote: + summary: Remote rootless tests + discover+: + filter: 'tag:remote & tag:rootless' + # FIXME: reenable after journald tests are handled for RHEL on upstream + adjust: + enabled: false + when: distro == centos-stream or distro == rhel diff --git a/plans/skopeo.fmf b/plans/skopeo.fmf new file mode 100644 index 000000000..2dd17a1cb --- /dev/null +++ b/plans/skopeo.fmf @@ -0,0 +1,40 @@ +prepare: + - when: distro == centos-stream or distro == rhel + how: shell + script: | + BATS_VERSION=1.12.0 + curl -L https://github.com/bats-core/bats-core/archive/refs/tags/v"$BATS_VERSION".tar.gz | tar -xz + cd bats-core-"$BATS_VERSION" + ./install.sh /usr + order: 10 + - when: initiator == packit + how: shell + script: | + COPR_REPO_FILE="/etc/yum.repos.d/*podman-next*.repo" + if compgen -G $COPR_REPO_FILE > /dev/null; then + sed -i -n '/^priority=/!p;$apriority=1' $COPR_REPO_FILE + fi + dnf -y upgrade --allowerasing + order: 20 + - name: packages + how: install + package: [skopeo-tests] + +discover: + how: fmf + url: https://github.com/containers/skopeo + ref: "main" + test: /systemtest/tmt + +execute: + how: tmt + +provision: + how: artemis + hardware: + memory: ">= 16 GB" + cpu: + cores: ">= 4" + threads: ">=8" + disk: + - size: ">= 512 GB"