diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.packit.yaml b/.packit.yaml index c110485..7f7ae7c 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -1,40 +1,25 @@ ---- # See the documentation for more information: # https://packit.dev/docs/configuration/ -specfile_path: rpm/crun-vm.spec - -srpm_build_deps: - - cargo - - make - - openssl-devel - jobs: - - job: copr_build + + - &tests + job: tests trigger: pull_request - notifications: - failure_comment: - message: "Ephemeral COPR build failed. @containers/packit-build please check." - targets: - fedora-all-x86_64: {} - fedora-all-aarch64: {} - fedora-eln-x86_64: - additional_repos: - - "https://kojipkgs.fedoraproject.org/repos/eln-build/latest/x86_64/" - fedora-eln-aarch64: - additional_repos: - - "https://kojipkgs.fedoraproject.org/repos/eln-build/latest/aarch64/" - additional_repos: - - "copr://rhcontainerbot/podman-next" + skip_build: true enable_net: true + targets: + # TODO: Replace these three with fedora-all-x86_64 one Fedora 38 is gone. + - fedora-rawhide-x86_64 + - fedora-40-x86_64 + - fedora-39-x86_64 + identifier: docker + tmt_plan: /tests/docker - # Run on commit to main branch - - job: copr_build - trigger: commit - notifications: - failure_comment: - message: "podman-next COPR build failed. @containers/packit-build please check." - branch: main - owner: rhcontainerbot - project: podman-next - enable_net: true + - <<: *tests + identifier: podman + tmt_plan: /tests/podman + + - <<: *tests + identifier: rootful-podman + tmt_plan: /tests/rootful-podman diff --git a/plans/tests.fmf b/plans/tests.fmf new file mode 100644 index 0000000..14f8fd9 --- /dev/null +++ b/plans/tests.fmf @@ -0,0 +1,59 @@ +provision: + hardware: + virtualization: + is-supported: true + +prepare: + - name: Install dependencies + how: install + package: + - bash + - cargo + - coreutils + - crun + - docker + - genisoimage + - grep + - guestfs-tools + - libselinux-devel + - libvirt-client + - libvirt-daemon-driver-qemu + - openssh + - openssh-clients + - passt + - podman + - qemu-img + - qemu-system-aarch64-core + - qemu-system-x86-core + - sed + - util-linux + - virtiofsd + +execute: + how: tmt + script: | + set -ex + export PATH=$PATH:/root/.cargo/bin LIBGUESTFS_BACKEND=direct + + # set the test VM Fedora version to the host's version to properly test it + tag=$( awk -F= '/^VERSION_ID=/ {print tolower($2)}' /etc/os-release ) + export CRUN_VM_TEST_ENV_BASE_IMAGE=quay.io/containerdisks/fedora:$tag + + tests/env.sh build + tests/env.sh start + tests/env.sh run "$ENGINE" all + +/docker: + summary: Run all tests under Docker + environment: + ENGINE: docker + +/podman: + summary: Run all tests under Podman + environment: + ENGINE: podman + +/rootful-podman: + summary: Run all tests under Rootful Podman + environment: + ENGINE: rootful-podman diff --git a/tests/env.sh b/tests/env.sh index 1a71209..f6ed1d2 100755 --- a/tests/env.sh +++ b/tests/env.sh @@ -5,7 +5,7 @@ set -o errexit -o pipefail -o nounset start_time="$( date +%s%N )" -env_image_base=quay.io/containerdisks/fedora:40 +env_image_base=${CRUN_VM_TEST_ENV_BASE_IMAGE:-"quay.io/containerdisks/fedora:40"} env_image=quay.io/crun-vm/test-env:latest container_name=crun-vm-test-env