Merge pull request #17787 from DaanDeMeyer/mkosi-boot-tests
CI: Add mkosi boot tests
This commit is contained in:
commit
f1027d7c28
|
@ -0,0 +1,42 @@
|
||||||
|
name: mkosi
|
||||||
|
|
||||||
|
# Simple boot tests that build and boot the mkosi images generated by the mkosi config files in .mkosi.
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
distro:
|
||||||
|
- arch
|
||||||
|
- debian
|
||||||
|
- ubuntu
|
||||||
|
- fedora
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: systemd/mkosi@v8
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
run: sudo apt-get update && sudo apt-get install --no-install-recommends
|
||||||
|
ovmf
|
||||||
|
python3-pexpect
|
||||||
|
qemu-system-x86-64
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.distro }}
|
||||||
|
run: sudo python3 -m mkosi --default .mkosi/mkosi.${{ matrix.distro }} --password= --qemu-headless build
|
||||||
|
|
||||||
|
- name: Boot ${{ matrix.distro }} systemd-nspawn
|
||||||
|
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --default .mkosi/mkosi.${{ matrix.distro }} --password= --qemu-headless boot
|
||||||
|
|
||||||
|
- name: Boot ${{ matrix.distro }} QEMU
|
||||||
|
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --default .mkosi/mkosi.${{ matrix.distro }} --password= --qemu-headless qemu
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
|
import pexpect
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def run() -> None:
|
||||||
|
p = pexpect.spawnu(" ".join(sys.argv[1:]), logfile=sys.stdout, timeout=300)
|
||||||
|
|
||||||
|
p.expect("login:")
|
||||||
|
p.sendline("root")
|
||||||
|
|
||||||
|
p.expect("#")
|
||||||
|
p.sendline("systemctl poweroff")
|
||||||
|
|
||||||
|
p.expect(pexpect.EOF)
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
run()
|
||||||
|
except pexpect.EOF:
|
||||||
|
print("UNEXPECTED EOF")
|
||||||
|
sys.exit(1)
|
||||||
|
except pexpect.TIMEOUT:
|
||||||
|
print("TIMED OUT")
|
||||||
|
sys.exit(1)
|
|
@ -24,7 +24,7 @@ BuildPackages=
|
||||||
git
|
git
|
||||||
gnu-efi
|
gnu-efi
|
||||||
gperf
|
gperf
|
||||||
iptables-dev
|
libiptc-dev
|
||||||
libacl1-dev
|
libacl1-dev
|
||||||
libaudit-dev
|
libaudit-dev
|
||||||
libblkid-dev
|
libblkid-dev
|
||||||
|
|
|
@ -23,6 +23,7 @@ BuildPackages=
|
||||||
diffutils
|
diffutils
|
||||||
docbook-style-xsl
|
docbook-style-xsl
|
||||||
elfutils-devel
|
elfutils-devel
|
||||||
|
findutils
|
||||||
gcc
|
gcc
|
||||||
gettext
|
gettext
|
||||||
git
|
git
|
||||||
|
@ -64,6 +65,7 @@ BuildPackages=
|
||||||
python3-devel
|
python3-devel
|
||||||
python3-lxml
|
python3-lxml
|
||||||
qrencode-devel
|
qrencode-devel
|
||||||
|
rpm
|
||||||
tree
|
tree
|
||||||
valgrind-devel
|
valgrind-devel
|
||||||
xz-devel
|
xz-devel
|
||||||
|
|
Loading…
Reference in New Issue