Skip to content

Commit

Permalink
TMT: initial enablement
Browse files Browse the repository at this point in the history
This commit adds `validate`, `unit`, and `integration` tests using
for aarch64 and x86_64 arches on all active Fedora and CentOS Stream
versions.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
  • Loading branch information
lsm5 committed Jul 19, 2024
1 parent 0ade6b4 commit 0724e19
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 7 deletions.
1 change: 1 addition & 0 deletions .fmf/version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ vendor/
src/proto-build/netavark_proxy.rs
contrib/systemd/*/*.service
.vscode*
rpm/RPMS
rpm/SRPMS
rpm/*.tar.gz
59 changes: 52 additions & 7 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ jobs:
- job: copr_build
trigger: pull_request
packages: [netavark-fedora]
notifications: &copr_build_failure_notification
failure_comment:
message: "Ephemeral COPR build failed. @containers/packit-build please check."
#notifications: &copr_build_failure_notification
# failure_comment:
# message: "Ephemeral COPR build failed. @containers/packit-build please check."
targets:
fedora-all-x86_64: {}
fedora-all-aarch64: {}
Expand All @@ -41,8 +41,8 @@ jobs:
- job: copr_build
trigger: pull_request
packages: [netavark-centos]
notifications: *copr_build_failure_notification
targets:
#notifications: *copr_build_failure_notification
targets: &centos_targets
- centos-stream-9-x86_64
- centos-stream-9-aarch64
- centos-stream-10-x86_64
Expand All @@ -52,8 +52,8 @@ jobs:
- job: copr_build
trigger: pull_request
packages: [netavark-rhel]
notifications: *copr_build_failure_notification
targets:
#notifications: *copr_build_failure_notification
targets: &rhel_targets
- epel-9-x86_64
- epel-9-aarch64
enable_net: true
Expand All @@ -70,6 +70,51 @@ jobs:
project: podman-next
enable_net: true

- job: tests
trigger: pull_request
packages: [netavark-fedora]
#notifications:
#failure_comment:
# message: "TMT tests failed. @containers/packit-build please check."
targets:
- fedora-all
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: [netavark-centos]
#notifications:
#failure_comment:
# message: "TMT tests failed. @containers/packit-build please check."
targets: *centos_targets
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: tests
trigger: pull_request
packages: [netavark-rhel]
#notifications:
#failure_comment:
# message: "TMT tests failed. @containers/packit-build please check."
targets:
epel-9-x86_64:
distros: [RHEL-9.4.0-Nightly,RHEL-9-Nightly]
epel-9-aarch64:
distros: [RHEL-9.4.0-Nightly,RHEL-9-Nightly]
use_internal_tf: true
tf_extra_params:
environments:
- artifacts:
- type: repository-file
id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/epel-$releasever/rhcontainerbot-podman-next-epel-$releasever.repo

# Sync to Fedora
- job: propose_downstream
trigger: release
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,13 @@ unit: $(CARGO_TARGET_DIR)
$(CARGO) test

.PHONY: integration
# The NETAVARK envvar is used by bats to specify path to a netavark binary.
ifdef NETAVARK
$(info Skipping build as NETAVARK binary is specified)
integration: $(CARGO_TARGET_DIR)
else
integration: $(CARGO_TARGET_DIR) examples
endif
# needs to be run as root or with podman unshare --rootless-netns
bats test/
bats test-dhcp/
Expand Down
20 changes: 20 additions & 0 deletions plans/all.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
discover:
how: fmf
execute:
how: tmt

/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
25 changes: 25 additions & 0 deletions test/tmt/main.fmf
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Only common dependencies that are NOT required to run test_integration.sh are
# specified here. Everything else is in test_integration.sh.
require:
- cargo
- make
- protobuf-compiler

adjust:
duration: 10m
when: arch == aarch64

/validate:
tag: upstream
summary: Validate test
test: make -C ../.. validate

/unit:
tag: upstream
summary: Unit test
test: make -C ../.. unit

/integration:
tag: [ upstream, downstream ]
summary: Integration tests
test: bash test_integration.sh
31 changes: 31 additions & 0 deletions test/tmt/test_integration.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash

set -exo pipefail

cat /etc/redhat-release

# Remove testing-farm repos if they exist because they interfere with the
# podman-next copr. The default distro repos will not be removed and can be
# used wherever relevant.
rm -f /etc/yum.repos.d/tag-repository.repo

# Install dependencies for running tests
dnf -y install \
bats \
bind-utils \
cargo \
clippy \
dbus-daemon \
firewalld \
go-md2man \
iptables \
jq \
make \
nftables \
nmap-ncat \
rustfmt

rpm -q aardvark-dns cargo netavark

# Run tests
make -C ../.. NETAVARK=/usr/libexec/podman/netavark integration

0 comments on commit 0724e19

Please sign in to comment.