diff --git a/.gitignore b/.gitignore index 62eb9bc..2272c16 100644 --- a/.gitignore +++ b/.gitignore @@ -89,16 +89,8 @@ crun-0.1.1.tar.gz /crun-1.15.tar.zst /crun-1.17.tar.zst /crun-1.18.tar.zst -/crun-1.18.1.tar.zst /crun-1.18.2.tar.zst /crun-1.19.tar.zst /crun-1.19.1.tar.zst /crun-1.20.tar.zst /crun-1.21.tar.zst -/crun-1.22.tar.zst -/crun-1.23.tar.zst -/crun-1.23.1.tar.zst -/crun-1.24.tar.zst -/crun-1.25.tar.zst -/crun-1.25.1.tar.zst -/crun-1.26.tar.zst diff --git a/.packit.yaml b/.packit.yaml index b7dc6ae..ecb0014 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -66,10 +66,16 @@ jobs: packages: [crun-centos] notifications: *copr_build_failure_notification targets: ¢os_copr_targets - - centos-stream-9-x86_64 - - centos-stream-9-aarch64 - - centos-stream-10-x86_64 - - centos-stream-10-aarch64 + # Need epel9 repos to fetch wasmedge build dependency + centos-stream-9-x86_64: + additional_repos: + - https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/ + centos-stream-9-aarch64: + additional_repos: + - https://dl.fedoraproject.org/pub/epel/9/Everything/aarch64/ + # TODO: build on CS10 with wasmedge once epel-10 is available + centos-stream-10-x86_64: {} + centos-stream-10-aarch64: {} # Run on commit to main branch - job: copr_build @@ -86,9 +92,9 @@ jobs: - job: tests trigger: pull_request packages: [crun-fedora] - notifications: &test_failure_notification + notifications: &podman_system_test_fail_notification failure_comment: - message: "TMT tests failed. @containers/packit-build please check." + message: "podman system tests failed. @containers/packit-build please check." targets: *fedora_copr_targets tf_extra_params: environments: @@ -100,15 +106,8 @@ jobs: - job: tests trigger: pull_request packages: [crun-centos] - notifications: *test_failure_notification - # TODO: Re-enable centos-stream-10-x86_64 once criu issues are solved - # Ref: https://github.com/containers/crun/pull/1758#issuecomment-2901772392 - # Issue filed: https://github.com/containers/crun/issues/1759 - #targets: *centos_copr_targets - targets: - - centos-stream-9-x86_64 - - centos-stream-9-aarch64 - - centos-stream-10-aarch64 + notifications: *podman_system_test_fail_notification + targets: *centos_copr_targets tf_extra_params: environments: - artifacts: @@ -121,9 +120,8 @@ jobs: dist_git_branches: &fedora_targets - fedora-all - # Disabled until we're switching to Packit for CentOS Stream - job: propose_downstream - trigger: ignore + trigger: release packages: [crun-centos] dist_git_branches: - c10s diff --git a/README.packit b/README.packit index 9bb65f0..ad2b8e5 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 1.13.0.post1.dev2+g84134016c. +The file was generated using packit 1.3.0.post1.dev4+gb85da743. diff --git a/crun.spec b/crun.spec index 5cfc631..5acd520 100644 --- a/crun.spec +++ b/crun.spec @@ -9,17 +9,20 @@ # krun and wasm support only on aarch64 and x86_64 %ifarch aarch64 || x86_64 -%if %{defined fedora} -# krun only exists on fedora -%global krun_support 1 -%global krun_opts --with-libkrun - -# Keep wasmedge enabled only on Fedora. It breaks a lot on EPEL. +# Disable wasmedge on rhel 10 until EPEL10 is in place, otherwise it causes +# build issues on copr +%if %{defined fedora} || (%{defined copr_build} && %{defined rhel} && 0%{?rhel} < 10) %global wasm_support 1 %global wasmedge_support 1 %global wasmedge_opts --with-wasmedge %endif +# krun only exists on fedora +%if %{defined fedora} +%global krun_support 1 +%global krun_opts --with-libkrun +%endif + %endif %if %{defined fedora} || (%{defined rhel} && 0%{?rhel} < 10) @@ -39,7 +42,7 @@ Epoch: 102 # 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.26 +Version: 1.21 Release: %autorelease URL: https://github.com/containers/%{name} Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.zst @@ -66,14 +69,15 @@ BuildRequires: libseccomp-devel BuildRequires: python3-libmount BuildRequires: libtool BuildRequires: protobuf-c-devel +%ifnarch riscv64 BuildRequires: criu-devel >= 3.17.1-2 Recommends: criu >= 3.17.1 Recommends: criu-libs +%endif %if %{defined wasmedge_support} BuildRequires: wasmedge-devel %endif BuildRequires: python -BuildRequires: glibc-static Provides: oci-runtime %description @@ -117,9 +121,6 @@ Recommends: wasmedge %make_install prefix=%{_prefix} rm -rf %{buildroot}%{_prefix}/lib* -# Placeholder check to silence rpmlint -%check - %files %license COPYING %{_bindir}/%{name} diff --git a/plans/main.fmf b/plans/main.fmf index 7a4ae15..1328f77 100644 --- a/plans/main.fmf +++ b/plans/main.fmf @@ -24,17 +24,18 @@ prepare: - crun - podman-tests -/shellcheck: +/upstream: + summary: Run crun specific Podman system tests on upstream PRs discover+: - filter: 'tag:shellcheck' - enabled: true - adjust: - enabled: false - when: distro == centos-stream-10 or distro == rhel-10 - prepare+: - - how: install - package: ShellCheck + filter: tag:upstream + adjust+: + - enabled: false + when: initiator is not defined or initiator != packit -/tests: +/downstream: + summary: Run crun specific Podman system tests on bodhi / errata and dist-git PRs discover+: - filter: 'tag:podman | tag:sanity' + filter: tag:downstream + adjust+: + - enabled: false + when: initiator == packit diff --git a/plans/tmt.fmf b/plans/tmt.fmf deleted file mode 100644 index 1941978..0000000 --- a/plans/tmt.fmf +++ /dev/null @@ -1,9 +0,0 @@ -/: - inherit: false - -summary: Run tmt's integration tests -plan: - import: - url: https://github.com/teemtee/tmt - path: /plans/friends - name: /podman diff --git a/sources b/sources index 233ea40..0bdcdb2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (crun-1.26.tar.zst) = 0785af6095a26290f433c5739bea5d98a029c3f0e8efbeed420481849ebddd70acde6c1105133c392abf26bca90d232cced5e5994da7506d66a020a02c129fb3 +SHA512 (crun-1.21.tar.zst) = 022bb56dbf20eb7c479b76a92fc55c69b219e36233ee7e588eb883afd092fb4aaeca842e64d83e53bbb08bd09f635d582a86824950971842b73921d1ce134bd1 diff --git a/tests/tmt/podman/system-test.fmf b/tests/tmt/podman/system-test.fmf index 8df55c2..1032f07 100644 --- a/tests/tmt/podman/system-test.fmf +++ b/tests/tmt/podman/system-test.fmf @@ -2,6 +2,7 @@ adjust: duration: 10m when: arch == aarch64 -summary: Run crun specific Podman tests -test: bash ./system-test.sh -tag: [ podman ] +/system_test: + tag: [ upstream, downstream ] + summary: Run crun specific Podman tests + test: bash ./system-test.sh diff --git a/tests/tmt/podman/system-test.sh b/tests/tmt/podman/system-test.sh index 974f829..4d04562 100644 --- a/tests/tmt/podman/system-test.sh +++ b/tests/tmt/podman/system-test.sh @@ -14,4 +14,3 @@ rpm -q conmon containers-common crun podman podman-tests bats -t /usr/share/podman/test/system/030-run.bats bats -t /usr/share/podman/test/system/075-exec.bats bats -t /usr/share/podman/test/system/280-update.bats -bats -t /usr/share/podman/test/system/520-checkpoint.bats diff --git a/tests/tmt/sanity/main.fmf b/tests/tmt/sanity/main.fmf index ccfa4ca..6355ff6 100644 --- a/tests/tmt/sanity/main.fmf +++ b/tests/tmt/sanity/main.fmf @@ -1,4 +1,4 @@ summary: Sanity test for crun +tag: ['upstream', 'downstream'] test: bash ./runtest.sh duration: 10m -tag: [ sanity ] diff --git a/tests/tmt/sanity/runtest.sh b/tests/tmt/sanity/runtest.sh index 3e13986..d1d453c 100644 --- a/tests/tmt/sanity/runtest.sh +++ b/tests/tmt/sanity/runtest.sh @@ -10,104 +10,82 @@ cat /etc/redhat-release uname -r rpm -q crun criu -if ! crun --version; then - exit 1 -fi +crun --version +[ $? -ne 0 ] && exit 1 -if ! crun features; then - exit 1 -fi +crun features +[ $? -ne 0 ] && exit 1 -if ! crun list; then - exit 1 -fi +crun list +[ $? -ne 0 ] && exit 1 # create the top most bundle and rootfs directory -mkdir -p "$TEMPDIR"/rootfs +mkdir -p $TEMPDIR/rootfs # export busybox via podman into the rootfs directory -if ! (podman export "$(podman create $TESTIMG)" | tar -C "$TEMPDIR"/rootfs -xvf -); then - exit 1 -fi +podman export $(podman create $TESTIMG) | tar -C $TEMPDIR/rootfs -xvf - +[ $? -ne 0 ] && exit 1 # use existing spec -cp ./config.json "$TEMPDIR" -ls "$TEMPDIR" -cd "$TEMPDIR" +cp ./config.json $TEMPDIR +ls $TEMPDIR +cd $TEMPDIR -if ! crun create $CNAME; then - exit 1 -fi +crun create $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun list; then - exit 1 -fi +crun list +[ $? -ne 0 ] && exit 1 -if ! crun start $CNAME; then - exit 1 -fi +crun start $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun list; then - exit 1 -fi +crun list +[ $? -ne 0 ] && exit 1 -if ! crun state $CNAME; then - exit 1 -fi +crun state $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun ps $CNAME; then - exit 1 -fi +crun ps $CNAME +[ $? -ne 0 ] && exit 1 -if ! ret=$(crun exec $CNAME pwd) || [[ "$ret" != '/' ]]; then - exit 1 -fi +ret=$(crun exec $CNAME pwd) +[ $? -ne 0 ] || [ $ret != '/' ] && exit 1 -if ! crun pause $CNAME; then - exit 1 -fi +crun pause $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun state $CNAME; then - exit 1 -fi +crun state $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun resume $CNAME; then - exit 1 -fi +crun resume $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun state $CNAME; then - exit 1 -fi +crun state $CNAME +[ $? -ne 0 ] && exit 1 -if ! ret=$(crun exec $CNAME pwd) || [[ "$ret" != '/' ]]; then - exit 1 -fi +ret=$(crun exec $CNAME pwd) +[ $? -ne 0 ] || [ $ret != '/' ] && exit 1 -if ! crun delete --force $CNAME; then - exit 1 -fi +crun delete --force $CNAME +[ $? -ne 0 ] && exit 1 -if ! crun list; then - exit 1 -fi +crun list +[ $? -ne 0 ] && exit 1 -if ! (crun run $CNAME &); then - exit 1 -fi +crun run $CNAME & +[ $? -ne 0 ] && exit 1 -if ! crun list; then - exit 1 -fi +crun list +[ $? -ne 0 ] && exit 1 # make sure the container is running state sleep 2 -if ! ret=$(crun exec $CNAME echo 'ok') || [[ "$ret" != 'ok' ]]; then - exit 1 -fi +ret=$(crun exec $CNAME echo 'ok') +[ $? -ne 0 ] || [ $ret != 'ok' ] && exit 1 -if ! crun kill $CNAME; then - exit 1 -fi +crun kill $CNAME +[ $? -ne 0 ] && exit 1 exit 0 diff --git a/tests/tmt/shellcheck/main.fmf b/tests/tmt/shellcheck/main.fmf deleted file mode 100644 index 7d220b4..0000000 --- a/tests/tmt/shellcheck/main.fmf +++ /dev/null @@ -1,4 +0,0 @@ -summary: Shellcheck tests -test: find ../ -type f -name "*.sh" -exec shellcheck {} + -duration: 10m -tag: [ shellcheck ]