diff --git a/.packit.yaml b/.packit.yaml index 0c76b65..23b6ec0 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -38,6 +38,10 @@ jobs: - job: copr_build trigger: pull_request + # Test pull requests + - job: tests + trigger: pull_request + # Propose downstream pull requests - job: propose_downstream trigger: release diff --git a/plans/tmt.fmf b/plans/tmt.fmf index 83d67f5..00ca292 100644 --- a/plans/tmt.fmf +++ b/plans/tmt.fmf @@ -1,27 +1,19 @@ summary: Integration testing with tmt + discover: how: fmf + provision: how: virtual - memory: 3072 -prepare: - - name: enable-updates - how: shell - script: | - dnf install -y dnf-plugins-core - dnf install -y epel-release --skip-broken - dnf config-manager --enable '*-testing' - - name: install-tmt - how: install - copr: psss/tmt - package: tmt-provision-virtual + memory: 4096 + execute: how: tmt -/fedora: - provision+: - image: fedora - -/centos: - provision+: - image: centos +adjust: + - provision: + hardware: + virtualization: + is-supported: true + memory: ">= 8 GB" + when: trigger == commit diff --git a/test/tmt/main.fmf b/test/tmt/main.fmf deleted file mode 100644 index 543906a..0000000 --- a/test/tmt/main.fmf +++ /dev/null @@ -1,7 +0,0 @@ -summary: Run a simple test under nested virtualization -description: - Provision the latest fedora and centos guest using a short - name under a regular user and run a simple check. -test: ./test.sh -framework: beakerlib -duration: 20m diff --git a/test/tmt/plan.txt b/test/tmt/plan.txt deleted file mode 100644 index 258315f..0000000 --- a/test/tmt/plan.txt +++ /dev/null @@ -1,2 +0,0 @@ -execute: - script: cat /etc/redhat-release diff --git a/test/tmt/regular-user/data/.fmf/version b/test/tmt/regular-user/data/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/test/tmt/regular-user/data/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/test/tmt/regular-user/data/main.fmf b/test/tmt/regular-user/data/main.fmf new file mode 100644 index 0000000..521bdff --- /dev/null +++ b/test/tmt/regular-user/data/main.fmf @@ -0,0 +1,22 @@ +/plan: + discover: + how: fmf + provision: + how: virtual + execute: + how: tmt + + /fedora: + provision+: + image: fedora + environment: + EXPECTED: Fedora Linux + + /centos: + provision+: + image: centos-stream-10 + environment: + EXPECTED: CentOS Stream + +/test: + test: grep "$EXPECTED" /etc/os-release diff --git a/test/tmt/regular-user/main.fmf b/test/tmt/regular-user/main.fmf new file mode 100644 index 0000000..5177750 --- /dev/null +++ b/test/tmt/regular-user/main.fmf @@ -0,0 +1,8 @@ +summary: Regular user can provision a guest +description: + Provision a fedora and centos-stream guest using a + short name under a regular user and run a simple check. +test: ./test.sh +framework: beakerlib +require: tmt+provision-virtual +duration: 20m diff --git a/test/tmt/regular-user/test.sh b/test/tmt/regular-user/test.sh new file mode 100755 index 0000000..ed0cb21 --- /dev/null +++ b/test/tmt/regular-user/test.sh @@ -0,0 +1,26 @@ +#!/bin/bash +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm "tmt" + rlAssertRpm "python3-testcloud" + rlRun "useradd tester" + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "run=\$(mktemp -d)" 0 "Create run directory" + rlRun "cp -a data/. $tmp" + rlRun "chown -R tester $tmp $run" + [[ -d /var/tmp/tmt ]] && rlRun "chown -R tester /var/tmp/tmt" + rlPhaseEnd + + rlPhaseStartTest + rlRun "su -l tester -c 'cd $tmp && tmt run --id $run -avvv'" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "pkill -U tester" + rlRun "userdel -r tester" + rlGetTestState || rlFileSubmit "$run/log.txt" + rlRun "rm -r $tmp $run" 0 "Remove tmp and run directory" + rlPhaseEnd +rlJournalEnd diff --git a/test/tmt/test.sh b/test/tmt/test.sh deleted file mode 100755 index b054c9d..0000000 --- a/test/tmt/test.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm "tmt" - rlAssertRpm "python3-testcloud" - rlRun "useradd tester" - rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" - rlRun "cp plan.txt $tmp/plan.fmf" - rlRun "chown -R tester /var/tmp/tmt $tmp" - rlPhaseEnd - - for image in fedora centos; do - rlPhaseStartTest "Test $image" - rlRun "su -l tester -c 'cd $tmp && tmt init'" - rlRun "su -l tester -c \ - 'cd $tmp && tmt run -avvvddd provision -h virtual -i $image'" - rlPhaseEnd - done - - rlPhaseStartCleanup - rlRun "pkill -U tester" - rlRun "userdel -r tester" - rlRun "rm -r $tmp" 0 "Remove tmp directory" - rlPhaseEnd -rlJournalEnd