ci: build and run a QEMU guest VM for testing
authorVincent Fu <vincent.fu@samsung.com>
Fri, 6 Sep 2024 18:52:01 +0000 (18:52 +0000)
committerVincent Fu <vincent.fu@samsung.com>
Thu, 26 Sep 2024 17:29:45 +0000 (13:29 -0400)
commit12c4b854a34414bad23ef613efece7caca82445e
tree354dfa6055f8ac5952c93b9b608445b50d9e5bfe
parent0710fce4caaf1e9608b14583aba9075cb7caf9c3
ci: build and run a QEMU guest VM for testing

Since GitHub Actions' free runners now support nested virtualization,
let's create a guest VM image and use it to run some tests that cannot
be run directly via a GitHub Actions runner (because these runners do
not allow insertion of kernel modules).

This patch adds a workflow that runs nightly and:
- creates a Debian guest VM image using libguestfs
- builds QEMU
- starts the VM
- clones/builds fio on the VM
- runs the test

Separate instances of the job are spawned to run the following tests:
- basic io_uring_cmd
- NVMe protection information w/16-bit Guard PI
- NVMe PI 4096+16 w/64-bit Guard PI
- NVMe PI 4096+64 w/64-bit Guard PI
- FDP
- t/zbd/run-tests-against-nullb

Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
.github/actions/build-qemu/action.yml [new file with mode: 0644]
.github/actions/create-guest-image/action.yml [new file with mode: 0644]
.github/actions/start-vm/action.yml [new file with mode: 0644]
.github/workflows/qemu.yml [new file with mode: 0644]
ci/actions-install.sh