diff --git a/.gitignore b/.gitignore index 43728e4..edf038e 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,11 @@ /aardvark-dns-v1.13.0-vendor.tar.gz /v1.13.1.tar.gz /aardvark-dns-v1.13.1-vendor.tar.gz +/v1.14.0.tar.gz +/aardvark-dns-v1.14.0-vendor.tar.gz +/v1.15.0.tar.gz +/aardvark-dns-v1.15.0-vendor.tar.gz +/v1.16.0.tar.gz +/aardvark-dns-v1.16.0-vendor.tar.gz +/v1.17.0.tar.gz +/aardvark-dns-v1.17.0-vendor.tar.gz diff --git a/.packit.yaml b/.packit.yaml index e3e0afc..89d1cee 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -16,6 +16,11 @@ files_to_sync: - src: plans/ dest: plans/ delete: true + mkpath: true + - src: test/tmt + dest: test/tmt + delete: true + mkpath: true - src: .fmf/ dest: .fmf/ delete: true @@ -33,9 +38,15 @@ packages: srpm_build_deps: - cargo + - git-archive-all - make - openssl-devel +# https://packit.dev/docs/configuration/actions +# fix-spec-file only operates on copr builds and doesn't affect official distro builds +actions: + fix-spec-file: "bash .packit-copr-rpm.sh" + jobs: - job: copr_build trigger: pull_request @@ -43,7 +54,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 @@ -85,29 +96,21 @@ jobs: project: podman-next enable_net: true - # Unit tests on Fedora + # Tests on Fedora - job: tests trigger: pull_request packages: [aardvark-dns-fedora] notifications: &test_failure_notification failure_comment: message: "Tests failed. @containers/packit-build please check." - targets: - - fedora-development-x86_64 - - fedora-development-aarch64 - - fedora-latest-x86_64 - - fedora-latest-aarch64 - - fedora-latest-stable-x86_64 - - fedora-latest-stable-aarch64 - - fedora-40-x86_64 - - fedora-40-aarch64 + targets: *fedora_copr_targets 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 - # Unit tests on CentOS Stream + # Tests on CentOS Stream - job: tests trigger: pull_request packages: [aardvark-dns-centos] @@ -118,8 +121,6 @@ jobs: - artifacts: - type: repository-file id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/centos-stream-$releasever/rhcontainerbot-podman-next-centos-stream-$releasever.repo - - type: repository-file - id: https://src.fedoraproject.org/rpms/epel-release/raw/epel$releasever/f/epel.repo # Sync to Fedora - job: propose_downstream diff --git a/README.packit b/README.packit index 1b4760d..e03362b 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.102.2.post1.dev4+g3142fcf8. +The file was generated using packit 1.12.0.post1.dev13+gd51655c23. diff --git a/aardvark-dns.spec b/aardvark-dns.spec index 85b901a..08b71ac 100644 --- a/aardvark-dns.spec +++ b/aardvark-dns.spec @@ -22,7 +22,7 @@ Epoch: 2 # If that's what you're reading, Version must be 0, and will be updated by Packit for # copr and koji builds. # If you're reading this on dist-git, the version is automatically filled in by Packit. -Version: 1.13.1 +Version: 1.17.0 # The `AND` needs to be uppercase in the License for SPDX compatibility License: Apache-2.0 AND MIT AND Zlib Release: %autorelease @@ -53,6 +53,23 @@ BuildRequires: rust-srpm-macros Forwards other request to configured resolvers. Read more about configuration in `src/backend/mod.rs`. +%package tests +Summary: Tests for %{name} + +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: bats +Requires: bind-utils +Requires: jq +Requires: netavark +Requires: socat +Requires: dnsmasq + +%description tests +%{summary} + +This package contains system tests for %{name} and is only intended to be used +for gating tests. + %prep %autosetup -Sgit %{name}-%{version} # Following steps are only required on environments like koji which have no @@ -78,6 +95,14 @@ tar fx %{SOURCE1} %install %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install +%{__install} -d -p %{buildroot}%{_datadir}/%{name}/test +%{__cp} -rp test/* %{buildroot}%{_datadir}/%{name}/test/ +%{__rm} -rf %{buildroot}%{_datadir}/%{name}/test/tmt/ + +# Add empty check section to silence rpmlint warning. +# No tests meant to be run here. +%check + %files %license LICENSE %if (0%{?fedora} || 0%{?rhel} >= 10) && !%{defined copr_username} @@ -87,5 +112,8 @@ tar fx %{SOURCE1} %dir %{_libexecdir}/podman %{_libexecdir}/podman/%{name} +%files tests +%{_datadir}/%{name}/test + %changelog %autochangelog diff --git a/gating.yaml b/gating.yaml index dbb1d91..1fb3172 100644 --- a/gating.yaml +++ b/gating.yaml @@ -1,7 +1,10 @@ --- !Policy product_versions: - fedora-* -decision_context: bodhi_update_push_stable +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} @@ -9,4 +12,5 @@ rules: product_versions: - rhel-* decision_context: osci_compose_gate -rules: [] +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/plans/main.fmf b/plans/main.fmf index 5f468c5..2b884e7 100644 --- a/plans/main.fmf +++ b/plans/main.fmf @@ -2,22 +2,32 @@ discover: how: fmf 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 + - 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 -/upstream: - summary: Run tests on upstream PRs +/no-rpm: + summary: Run tests independent of rpm discover+: - filter: tag:upstream + filter: tag:no-rpm adjust+: - enabled: false - when: initiator is not defined or initiator != packit + - enabled: false + when: initiator is not defined or initiator != packit -/downstream: - summary: Run tests on bodhi / errata and dist-git PRs +/rpm: + summary: Run tests on the rpm discover+: - filter: tag:downstream - dist-git-install-builddeps: true - dist-git-source: true - dist-git-remove-fmf-root: true - adjust+: - enabled: false - when: initiator == packit + filter: tag:rpm diff --git a/sources b/sources index f63296e..413dc03 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (v1.13.1.tar.gz) = 30265a8d134f600e52c4a412a5fa9b00313cef26ad019adf5233ed0a63cd108b5636e15322569b1bd609d6eb741ceca94f3a076b391aef7ef0d47e3ae7e7c9ad -SHA512 (aardvark-dns-v1.13.1-vendor.tar.gz) = b5d5850409b54e74627b143669313dce35c94ea34533c6a89ea2d16e3155fe8030d406674fed8adbe9be9da6a71c5773d63382bde4364981adcfdbc036f515ac +SHA512 (v1.17.0.tar.gz) = 42e3a261bb5b9df83b8bb853ed50dd7dfda643895262aedf5ccdc865c598e913996a244d234ac309a18ee1a884b7ba847679dfe5d8b6521e674114c8aba552da +SHA512 (aardvark-dns-v1.17.0-vendor.tar.gz) = b7ec2a2a34d5bb36dbcc55611dc9ec0ff2c1bed4469cc4b12d4eb0bd78bb7d6cae6f80a02ac32ade5c435fdd11e22ddd99646aa4de504c8369ee56cfa470e6a5 diff --git a/test/tmt/tmt/main.fmf b/test/tmt/tmt/main.fmf new file mode 100644 index 0000000..9210cc8 --- /dev/null +++ b/test/tmt/tmt/main.fmf @@ -0,0 +1,26 @@ +/validate: + tag: [ no-rpm, validate ] + summary: Validate test + test: make -C ../.. validate + require: + - clippy + - rustfmt + +/unit: + tag: [ no-rpm, unit ] + summary: Unit tests + test: make -C ../.. unit + require: + - cargo + +/integration: + tag: [ rpm, integration ] + summary: Integration tests + test: bash test_integration.sh + environment: + AARDVARK: /usr/libexec/podman/aardvark-dns + require: + - aardvark-dns-tests + adjust: + duration: 10m + when: arch == aarch64 diff --git a/test/tmt/tmt/test_integration.sh b/test/tmt/tmt/test_integration.sh new file mode 100644 index 0000000..0839800 --- /dev/null +++ b/test/tmt/tmt/test_integration.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -exo pipefail + +rpm -q aardvark-dns aardvark-dns-tests netavark + +cd /usr/share/aardvark-dns/ +bats test/