From 5b080ac6c82dc2eeeaee8e6746e052ac5b176c9f Mon Sep 17 00:00:00 2001 From: Kroese Date: Sun, 26 Jul 2026 06:03:43 +0200 Subject: [PATCH] build: Update workflow (#1985) --- .github/workflows/install.yml | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index ba4c2899..bd17fa46 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -459,7 +459,10 @@ jobs: trap stop_logs EXIT deadline=$((SECONDS + 9000)) + reboot_timeout=1800 + minimum_reboots=1 boot_loop_limit=5 + first_bios_start=-1 while (( SECONDS < deadline )); do state="$( @@ -487,12 +490,12 @@ jobs: exit 1 fi - if grep -Fqi \ - 'CDBOOT: Cannot boot from CD - Code: 5' \ + if grep -Eqi \ + 'CDBOOT: Cannot boot from CD.*Code: 5' \ <<< "$container_log"; then echo echo "------------------------------------------------------------" - echo "Detected an unbootable installation medium." + echo "The installation media could not be booted." exit 1 fi @@ -528,6 +531,24 @@ jobs: grep -Fci 'BOOTMGR is missing' <<< "$container_log" || true )" + reboots=$((bios_starts > 0 ? bios_starts - 1 : 0)) + + if (( first_bios_start < 0 && bios_starts > 0 )); then + first_bios_start=$SECONDS + fi + + if (( first_bios_start >= 0 && + SECONDS - first_bios_start >= reboot_timeout && + reboots < minimum_reboots )); then + echo + echo "------------------------------------------------------------" + echo "The installation did not reboot within" \ + "$((reboot_timeout / 60)) minutes after the first BIOS start." + echo "Observed reboots: $reboots" + echo "Required reboots: $minimum_reboots" + exit 1 + fi + if (( bios_starts >= boot_loop_limit )) && (( hard_disk_boots >= boot_loop_limit || dvd_boots >= boot_loop_limit ||