diff --git a/.gitignore b/.gitignore index 15bdafa..edf038e 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,15 @@ /v1.12.1.tar.gz /v1.12.2.tar.gz /aardvark-dns-v1.12.2-vendor.tar.gz +/v1.13.0.tar.gz +/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 d3ca1ec..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 @@ -28,14 +33,20 @@ packages: aardvark-dns-centos: pkg_tool: centpkg specfile_path: rpm/aardvark-dns.spec - aardvark-dns-rhel: + aardvark-dns-eln: specfile_path: rpm/aardvark-dns.spec 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,9 +54,17 @@ jobs: notifications: &copr_build_failure_notification failure_comment: message: "Ephemeral COPR build failed. @containers/packit-build please check." + targets: &fedora_copr_targets + - fedora-all-x86_64 + - fedora-all-aarch64 + enable_net: true + osh_diff_scan_after_copr_build: false + + - job: copr_build + trigger: pull_request + packages: [aardvark-dns-eln] + notifications: *copr_build_failure_notification targets: - fedora-all-x86_64: {} - fedora-all-aarch64: {} fedora-eln-x86_64: additional_repos: - "https://kojipkgs.fedoraproject.org/repos/eln-build/latest/x86_64/" @@ -58,22 +77,13 @@ jobs: trigger: pull_request packages: [aardvark-dns-centos] notifications: *copr_build_failure_notification - targets: + targets: ¢os_copr_targets - centos-stream-9-x86_64 - centos-stream-9-aarch64 - centos-stream-10-x86_64 - centos-stream-10-aarch64 enable_net: true - - job: copr_build - trigger: pull_request - packages: [aardvark-dns-rhel] - notifications: *copr_build_failure_notification - targets: - - epel-9-x86_64 - - epel-9-aarch64 - enable_net: true - # Run on commit to main branch - job: copr_build trigger: commit @@ -86,54 +96,38 @@ 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-all-x86_64 - - fedora-all-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] notifications: *test_failure_notification - targets: - - centos-stream-9-x86_64 - - centos-stream-9-aarch64 - - centos-stream-10-x86_64 - - centos-stream-10-aarch64 - - # Unit tests on RHEL - - job: tests - trigger: pull_request - packages: [aardvark-dns-rhel] - notifications: *test_failure_notification - use_internal_tf: true - targets: - epel-9-aarch64: - distros: [RHEL-9-Nightly,RHEL-9.4.0-Nightly] - epel-9-x86_64: - distros: [RHEL-9-Nightly,RHEL-9.4.0-Nightly] - # NOTE: Need to use centos-stream-10 until RHEL-10/EPEL-10 copr targets - # are available - # TODO: iptables kernel module is not available on rhel10. - # Enable these after netavark default is switched to nftables. - #centos-stream-10-aarch64: - # distros: [RHEL-10-Beta-Nightly] - #centos-stream-10-x86_64: - # distros: [RHEL-10-Beta-Nightly] + targets: *centos_copr_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 # Sync to Fedora - job: propose_downstream trigger: release packages: [aardvark-dns-fedora] update_release: false - dist_git_branches: + dist_git_branches: &fedora_targets - fedora-all # Sync to CentOS Stream @@ -143,16 +137,12 @@ jobs: update_release: false dist_git_branches: - c10s + - c9s - job: koji_build trigger: commit - dist_git_branches: - - fedora-all - - # NOTE: Bodhi update tasks are disabled to allow netavark and aardvark-dns X.Y - # builds in a single manual bodhi update. Leaving this commented out - # but not deleted so it's not forgotten. - #- job: bodhi_update - #trigger: commit - #dist_git_branches: - #- fedora-branched # rawhide updates are created automatically + packages: [aardvark-dns-fedora] + sidetag_group: netavark-releases + dependents: + - netavark + dist_git_branches: *fedora_targets diff --git a/README.packit b/README.packit index 00daafb..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.100.3.post1.dev13+g92513a8e. +The file was generated using packit 1.12.0.post1.dev13+gd51655c23. diff --git a/aardvark-dns.spec b/aardvark-dns.spec index cb3efc6..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.12.2 +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/all.fmf b/plans/all.fmf deleted file mode 100644 index 5f468c5..0000000 --- a/plans/all.fmf +++ /dev/null @@ -1,23 +0,0 @@ -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 - dist-git-install-builddeps: true - dist-git-source: true - dist-git-remove-fmf-root: true - adjust+: - enabled: false - when: initiator == packit diff --git a/plans/main.fmf b/plans/main.fmf new file mode 100644 index 0000000..2b884e7 --- /dev/null +++ b/plans/main.fmf @@ -0,0 +1,33 @@ +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 + +/no-rpm: + summary: Run tests independent of rpm + discover+: + filter: tag:no-rpm + adjust+: + - enabled: false + when: initiator is not defined or initiator != packit + +/rpm: + summary: Run tests on the rpm + discover+: + filter: tag:rpm diff --git a/sources b/sources index 5be99cc..413dc03 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (v1.12.2.tar.gz) = 851683cd5ac569358c0f89895879c19ac607653f2f4578030a99911a4723dab025ca6d26615da6037baf95514e9bb7d3a2c86c618d57c67cee2b28fd3a73c072 -SHA512 (aardvark-dns-v1.12.2-vendor.tar.gz) = 1dfacc29962acca5c7baa11fbe4d1c93276b91cb5e1db6033d8e23e963ca4c4098bdbf4bdf89730fdea4d5a45b3a2c00ee65888d502e8009d2adaaa6f8374dba +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/