diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index c7508a5bd9..d6b0566605 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -48,8 +48,17 @@ jobs: - name: Build ${{ matrix.distro }} run: sudo python3 -m mkosi --password= --qemu-headless build + - name: Show ${{ matrix.distro }} image summary + run: sudo python3 -m mkosi --password= --qemu-headless summary + + # Ugly workaround for systemd/systemd#19442 where systemd-nspawn + # occasionally fails with 'Failed to dissect image xxx: Connection timed out + - name: Retry the build if necessary + if: ${{ matrix.distro == 'arch' }} + run: echo "BUILD_RETRY_MAX=3" >> $GITHUB_ENV + - name: Boot ${{ matrix.distro }} systemd-nspawn - run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless boot + run: sudo -E bash +e -x -c 'for _ in $(seq 1 ${BUILD_RETRY_MAX:-1}); do ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless boot && break; done' - name: Boot ${{ matrix.distro }} QEMU run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless qemu diff --git a/.github/workflows/test_mkosi_boot.py b/.github/workflows/test_mkosi_boot.py index 37904eb059..3418fd3a51 100755 --- a/.github/workflows/test_mkosi_boot.py +++ b/.github/workflows/test_mkosi_boot.py @@ -8,9 +8,6 @@ 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")