Skip to content

Commit

Permalink
[skip-ci] Packit/TMT: Run system tests
Browse files Browse the repository at this point in the history
This commit enables system tests via TMT.

Signed-off-by: Lokesh Mandvekar <[email protected]>
  • Loading branch information
lsm5 committed Dec 25, 2024
1 parent bf59878 commit 85e8158
Show file tree
Hide file tree
Showing 7 changed files with 168 additions and 3 deletions.
1 change: 1 addition & 0 deletions .fmf/version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
75 changes: 73 additions & 2 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,27 @@
downstream_package_name: skopeo
upstream_tag_template: v{version}

# These files get synced from upstream to downstream (Fedora / CentOS Stream) on every
# propose-downstream job. This is done so tests maintained upstream can be run
# downstream in Zuul CI and Bodhi.
# Ref: https://packit.dev/docs/configuration#files_to_sync
files_to_sync:
- src: rpm/gating.yaml
dest: gating.yaml
delete: true
- src: plans/
dest: plans/
delete: true
mkpath: true
- src: systemtest/tmt/
dest: test/tmt/
delete: true
mkpath: true
- src: .fmf/
dest: .fmf/
delete: true
- .packit.yaml

packages:
skopeo-fedora:
pkg_tool: fedpkg
Expand All @@ -29,7 +50,7 @@ jobs:
notifications: &copr_build_failure_notification
failure_comment:
message: "Ephemeral COPR build failed. @containers/packit-build please check."
targets:
targets: &fedora_copr_targets
- fedora-all-x86_64
- fedora-all-aarch64
enable_net: true
Expand All @@ -51,7 +72,7 @@ jobs:
trigger: pull_request
packages: [skopeo-centos]
notifications: *copr_build_failure_notification
targets:
targets: &centos_copr_targets
- centos-stream-9-x86_64
- centos-stream-9-aarch64
- centos-stream-10-x86_64
Expand All @@ -70,6 +91,56 @@ jobs:
project: podman-next
enable_net: true

# Tests on Fedora
- job: tests
trigger: pull_request
packages: [skopeo-fedora]
notifications: &test_failure_notification
failure_comment:
message: "Tests failed. @containers/packit-build please check."
targets: *fedora_copr_targets
require: &dev_tests
label:
absent:
- release
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: [skopeo-fedora]
targets: *fedora_copr_targets
require: &release_tests
label:
present:
- release
preserve_project: true
identifier: "release"

# Tests on CentOS Stream
- job: tests
trigger: pull_request
packages: [skopeo-centos]
notifications: *test_failure_notification
targets: *centos_copr_targets
require: *dev_tests
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

# Tests on CentOS Stream
- job: tests
trigger: pull_request
packages: [skopeo-centos]
notifications: *test_failure_notification
targets: *centos_copr_targets
require: *release_tests

# Sync to Fedora
- job: propose_downstream
trigger: release
Expand Down
40 changes: 40 additions & 0 deletions plans/main.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
discover:
how: fmf
execute:
how: tmt
adjust:
- when: "initiator == packit"
because: "We need to test with updated packages from rhcontainerbot/podman-next copr"
prepare+:
how: shell
script: |
sed -i -n '/^priority=/!p;$apriority=1' /etc/yum.repos.d/*podman-next*.repo
dnf -y upgrade --allowerasing
# FIXME: Use epel10 once bats is available there
- when: distro == centos-stream-10 or distro == rhel-10
because: "bats isn't yet available on epel10"
prepare+:
how: install
copr: rhcontainerbot/bats-el10
package: bats
- when: distro == centos-stream or distro == rhel
because: "bats is present on EPEL on rhel9 / c9s"
prepare+:
how: feature
epel: enabled

/upstream:
summary: Run tests on upstream PRs
discover+:
filter: tag:upstream
adjust+:
- enabled: false
when: initiator is not defined or initiator != packit

/downstream:
summary: Run tests on bodhi / errata and dist-git PRs
discover+:
filter: tag:downstream
adjust+:
- enabled: false
when: initiator == packit
16 changes: 16 additions & 0 deletions rpm/gating.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
--- !Policy
product_versions:
- fedora-*
decision_context:
- bodhi_update_push_stable
- bodhi_update_push_testing
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
13 changes: 12 additions & 1 deletion rpm/skopeo.spec
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,17 @@
# Copr builds set a separate epoch for all environments
%if %{defined fedora}
%define conditional_epoch 1
%define fakeroot 1
%else
%define conditional_epoch 2
%endif

# Adjust/Remove after epel10 gets bats
# Ref: https://bugzilla.redhat.com/show_bug.cgi?id=2329315
%if %{defined fedora} || %{defined rhel} && 0%{?rhel} == 9
%define bats_epel 1
%endif

Name: skopeo
%if %{defined copr_username}
Epoch: 102
Expand Down Expand Up @@ -81,8 +88,12 @@ registries without the need to pull them
Summary: Tests for %{name}

Requires: %{name} = %{epoch}:%{version}-%{release}
%if %{defined fedora}
%if %{defined bats_epel}
Requires: bats
%else
Recommends: bats
%endif
%if %{defined fakeroot}
Requires: fakeroot
%endif
Requires: gnupg
Expand Down
10 changes: 10 additions & 0 deletions systemtest/tmt/main.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
require:
- skopeo-tests

environment:
SKOPEO_BINARY: /usr/bin/skopeo

tag: [ upstream, downstream ]
summary: System test
test: bash ./test.sh
duration: 60m
16 changes: 16 additions & 0 deletions systemtest/tmt/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

set -exo pipefail

uname -r

rpm -q \
conmon \
container-selinux \
containers-common \
crun \
podman \
skopeo \
skopeo-tests \

bats /usr/share/skopeo/test/system

0 comments on commit 85e8158

Please sign in to comment.