diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 9ab69af..57544fd 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -110,7 +110,7 @@ jobs: base=$(ls -d test-runs/*-integration) ./test/vm-image/vm-seal "$base" sealed ./test/vm-image/vm-verify sealed | tee vm-verify.txt - ./test/vm-image/vm-boot sealed "pacman -Q omarchy-dev omarchy-settings-dev linux-omarchy; uname -r" >vm-packages.txt + ./test/vm-image/vm-boot sealed "pacman -Q omarchy-dev omarchy-settings-dev; pacman -Qo /usr/lib/modules/\$(uname -r)/pkgbase; uname -r" >vm-packages.txt cat vm-packages.txt ' diff --git a/test/vm-image/vm-seal b/test/vm-image/vm-seal index 322df27..0434a97 100755 --- a/test/vm-image/vm-seal +++ b/test/vm-image/vm-seal @@ -66,7 +66,12 @@ done ssh_vm 'timeout 180 systemctl is-system-running --wait >/dev/null 2>&1 || true' mkdir -p "$out" -root 'cat /boot/EFI/Linux/omarchy_linux-omarchy.efi' >"$state/uki.efi" +# The kernel that is running: edge installs linux-omarchy-bore where stable +# installs linux-omarchy, and the boot entry, not the UKI, may hold the +# command line. +kernel=$(ssh_vm 'cat "/usr/lib/modules/$(uname -r)/pkgbase"') +root "cat /boot/EFI/Linux/omarchy_$kernel.efi" >"$state/uki.efi" +ssh_vm 'cat /proc/cmdline' >"$state/cmdline" root ' # The ISO writes autologin only for encrypted installs; a test has nobody at @@ -135,7 +140,6 @@ rm -f "$state/qemu.pid" # and hashing the UKI. resume= points at the image's own swap, so drop it. objcopy -O binary --only-section=.linux "$state/uki.efi" "$out/vmlinuz" objcopy -O binary --only-section=.initrd "$state/uki.efi" "$out/initrd" -objcopy -O binary --only-section=.cmdline "$state/uki.efi" "$state/cmdline" tr -d '\0' <"$state/cmdline" | tr ' ' '\n' | { grep -vE '^(resume|resume_offset)=|^$' || true; } | paste -sd' ' >"$out/cmdline" [[ -s $out/vmlinuz && -s $out/initrd && -s $out/cmdline ]] || { echo "vm-seal: the UKI gave no kernel, initrd or cmdline" >&2; exit 1; }