Nightly: its decisions are scripts, with tests

Which channels a run makes and where they go, and what is laid out and
what latest.json then says, were shell inside the workflow file, tried
only by hand. A green run published a latest.json with the Omarchy
version in it twice, and nothing noticed.

Both are scripts now, test/vm-image/nightly-plan and nightly-layout,
and test/unit/nightly-test.sh tries them without a runner: a first run,
a run started again, a release already published, a tag that is not a
version; every field of latest.json for each channel, the checksums
against the files, the version a consumer reads from the ISO's name.
nightly-layout also refuses to describe an image it cannot describe
fully, and checks its own latest.json before anything is published.

The same test covers two things the install test decides: which Omarchy
packages an ISO installs, and when an install is over.
This commit is contained in:
Emir Beganovic committed 2026-10-09 20:12:14 +02:00
1 parent ff30b7f558
commit 0abcbb0b97
5 files changed
+312 -64

No files matched your search

+10 -5
View File
@@ -514,6 +514,12 @@ detect_packages() {
fi
}
# The firmware names what it starts on the serial port: the ISO's medium while
# the installer runs, the installed disk's Limine once the install is over.
installed_system_started() {
grep -aq 'starting Boot.*"Limine"' "$1" 2>/dev/null
}
install_phase() {
log "Installing $(basename "$ISO") unattended via cidata (headless)"
@@ -576,11 +582,10 @@ install_phase() {
printf -v progress_name 'success-install-progress-%04ds' "$waited"
capture_console "$progress_name"
fi
# The firmware names what it starts on the serial port. Once that is the
# installed disk's Limine, the install is over and what is being waited
# for is the first boot: say so, or a hung first boot reads as a slow
# install.
if [[ -z $first_boot_at ]] && grep -aq 'starting Boot.*"Limine"' "$RUN_DIR/install-serial.log" 2>/dev/null; then
# Once the installed system has started, the install is over and what is
# being waited for is the first boot: say so, or a hung first boot reads
# as a slow install.
if [[ -z $first_boot_at ]] && installed_system_started "$RUN_DIR/install-serial.log"; then
first_boot_at=$waited
log "Install finished after about ${waited}s. Waiting for the installed system's first boot."
fi