Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@
downstream_package_name: podman
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: test/tmt/
dest: test/tmt/
delete: true
mkpath: true
- src: .fmf/
dest: .fmf/
delete: true
- .packit.yaml

packages:
podman-fedora:
pkg_tool: fedpkg
Expand Down Expand Up @@ -80,6 +101,22 @@ jobs:
project: podman-next
enable_net: true

# Tests on Fedora
- job: tests
trigger: pull_request
packages: [podman-fedora]
notifications: *packit_generic_failure_notification
targets:
- fedora-rawhide
- fedora-42
- fedora-41
Comment on lines +109 to +112
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have a reason why not to follow packit aliases to follow fedora releases? these will need to be bumped

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this because f40 and aarch64 tests were failing. aarch64 had some criu issues and F40 I don't quite remember what.

This is only a short term thing, and I would like to follow up with enablements for centos stream and all active fedora as well as aarch64

tmt_plan: "/plans/system/*"
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
identifier: cockpit-revdeps
trigger: pull_request
Expand Down
59 changes: 59 additions & 0 deletions plans/system.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
discover:
how: fmf

execute:
how: tmt

prepare:
- how: shell
script: modprobe null_blk nr_devices=1
order: 5
- when: distro == centos-stream or distro == rhel
how: shell
script: |
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm --eval '%{?rhel}').noarch.rpm
dnf -y config-manager --set-enabled epel
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

adjust+:
- enabled: false
when: revdeps == yes

provision:
how: artemis
hardware:
memory: ">= 16 GB"
cpu:
cores: ">= 4"
threads: ">=8"
disk:
- size: ">= 512 GB"

/local-root:
summary: Local rootful tests
discover+:
filter: 'tag:local & tag:root'

/local-rootless:
summary: Local rootless tests
discover+:
filter: 'tag:local & tag:rootless'

/remote-root:
summary: Remote rootful tests
discover+:
filter: 'tag:remote & tag:root'

/remote-rootless:
summary: Remote rootless tests
discover+:
filter: 'tag:remote & tag:rootless'
21 changes: 21 additions & 0 deletions plans/tmt.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
summary: Run tmt container provision test (downstream only)

enabled: false
adjust+:
- enabled: true
when: initiator != packit and distro != rhel

discover:
how: fmf
filter: 'tag:tmt & tag:downstream'

execute:
how: tmt

prepare:
- when: distro == centos-stream or distro == rhel
how: shell
script: |
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm --eval '%{?rhel}').noarch.rpm
dnf -y config-manager --set-enabled epel
order: 10
29 changes: 29 additions & 0 deletions plans/toolbox.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
summary: Run toolbox tests (downstream only)

enabled: false
adjust+:
- enabled: true
when: initiator != packit and distro == fedora

provision:
how: artemis
hardware:
memory: ">= 16 GB"
cpu:
cores: ">= 4"
threads: ">=8"
disk:
- size: ">= 512 GB"

prepare:
- name: packages
how: install
package: [toolbox-tests]

discover:
how: fmf
url: https://src.fedoraproject.org/rpms/toolbox
ref: "rawhide"

execute:
how: tmt
17 changes: 17 additions & 0 deletions rpm/gating.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--- !Policy
product_versions:
- fedora-*
decision_contexts:
- bodhi_update_push_stable
- bodhi_update_push_testing
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

# recipients: jnovy, lsm5, santiago
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
7 changes: 5 additions & 2 deletions rpm/podman.spec
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
%define build_with_btrfs 1
# qemu-system* isn't packageed for CentOS Stream / RHEL
%define qemu 1
# bats is included in the default repos (No epel/copr etc.)
%define distro_bats 1
%endif

%if %{defined copr_username}
Expand Down Expand Up @@ -139,7 +141,7 @@ pages and %{name}.
Summary: Tests for %{name}

Requires: %{name} = %{epoch}:%{version}-%{release}
%if %{defined fedora}
%if %{defined distro_bats}
Requires: bats
%endif
Requires: attr
Expand All @@ -157,7 +159,8 @@ Requires: xfsprogs
%description tests
%{summary}

This package contains system tests for %{name}
This package contains system tests for %{name}. Only intended to be used for
gating tests. Not supported for end users / customers.

%package remote
Summary: (Experimental) Remote client for managing %{name} containers
Expand Down
48 changes: 48 additions & 0 deletions test/tmt/system.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
require:
- podman-tests
- psmisc

environment:
# PODMAN_TESTING envvar is set in system.sh
PODMAN: /usr/bin/podman
QUADLET: /usr/libexec/podman/quadlet
ROOTLESS_USER: "fedora"
adjust+:
- when: distro == centos-stream
environment+:
ROOTLESS_USER: "ec2-user"
- when: distro == rhel
environment+:
ROOTLESS_USER: "cloud-user"

/local-root:
tag: [ local, root ]
summary: local rootful test
test: bash ./system.sh
duration: 30m

/local-rootless:
tag: [ local, rootless ]
summary: rootless test
test: bash ./system.sh rootless
duration: 30m

/remote-root:
tag: [ remote, root ]
summary: remote rootful test
test: bash ./system.sh
duration: 30m
environment+:
PODMAN: /usr/bin/podman-remote
require+:
- podman-remote

/remote-rootless:
tag: [ remote, rootless ]
summary: remote rootless test
test: bash ./system.sh rootless
duration: 30m
environment+:
PODMAN: /usr/bin/podman-remote
require+:
- podman-remote
44 changes: 44 additions & 0 deletions test/tmt/system.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env bash

set -exo pipefail

uname -r

loginctl enable-linger "$ROOTLESS_USER"

rpm -q \
aardvark-dns \
buildah \
conmon \
container-selinux \
containers-common \
criu \
crun \
netavark \
passt \
podman \
podman-tests \
skopeo \
slirp4netns \
systemd

export system_service_cmd="/usr/bin/podman system service --timeout=0 &"
export test_cmd="whoami && cd /usr/share/podman/test/system && PODMAN_TESTING=/usr/bin/podman-testing bats ."

if [[ -z $1 ]]; then
if [[ $PODMAN == "/usr/bin/podman-remote" ]]; then
eval "$system_service_cmd"
fi
eval "$test_cmd"
elif [[ $1 == "rootless" ]]; then
if [[ $PODMAN == "/usr/bin/podman-remote" ]]; then
su - "$ROOTLESS_USER" -c "eval $system_service_cmd"
fi
su - "$ROOTLESS_USER" -c "eval $test_cmd"
fi

# Kill all podman processes for remote tests
if [[ $PODMAN == "/usr/bin/podman-remote" ]]; then
killall -q podman
fi
exit 0
13 changes: 13 additions & 0 deletions test/tmt/tmt.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
enabled: false
adjust:
enabled: true
when: initiator != packit && distro != rhel
summary: Make sure that TMT container provision works
tag: [downstream]
require:
- tmt+provision-container
test:
tmt run --verbose --remove
provision --how container --image fedora
login --command 'cat /etc/os-release'
finish