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:
1 parent
ff30b7f558
commit
0abcbb0b97
5 files changed
+312
-64
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user