From 540139b967929d8f7dbffb433cb75087a30536fd Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Wed, 30 Sep 2026 10:51:24 +0200 Subject: [PATCH] feat: show progress while the tests run (install and steamify.sh heartbeats, unbuffered output) --- scripts/vmbootloadertest.sh | 9 +++++++-- scripts/vminstall.sh | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/vmbootloadertest.sh b/scripts/vmbootloadertest.sh index 375f8ff..4479000 100755 --- a/scripts/vmbootloadertest.sh +++ b/scripts/vmbootloadertest.sh @@ -90,7 +90,12 @@ gssh 'sudo mkdir -p /var/cache/steamify-pkg /var/cache/steamify; sudo mountpoint gssh 'sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt; cd /mnt && nohup bash steamify.sh --defaults --options gaming,theme,glyphs,single,launcher,notify,vram,cec,machine,poweroff --boot gamescope > /tmp/steamify.log 2>&1 < /dev/null &' sleep 20 # [s]: the pattern must not match this ssh command itself. -for _ in $(seq 90); do gssh 'pgrep -f "[s]teamify.sh --defaults" >/dev/null && echo R || echo D' 2>/dev/null | grep -q D && break; sleep 10; done +n=0 +for _ in $(seq 90); do + gssh 'pgrep -f "[s]teamify.sh --defaults" >/dev/null && echo R || echo D' 2>/dev/null | grep -q D && break + (( n++ % 6 == 0 )) && echo " .. steamify.sh running: $(gssh 'tail -n 1 /tmp/steamify.log' 2>/dev/null | sed 's/\x1b\[[0-9;]*m//g' | cut -c1-110)" + sleep 10 +done gssh 'sed "s/\x1b\[[0-9;]*m//g" /tmp/steamify.log | grep -E "^\[(WARN|ERROR)\]" | cut -c1-140' gssh 'tail -n 1 /tmp/steamify.log | sed "s/\x1b\[[0-9;]*m//g"' | grep -q '^\[OK\] Done' && echo "PASS Steamify finished" || { echo "FAIL Steamify did not finish"; } @@ -132,7 +137,7 @@ fi step "DONE" stop_vm -} 2>&1 | tee "$log" | tee >(sed -u "s/^/[$loader] /" >> "$TEST_LOG") | sed 's/\x1b\[[0-9;]*m//g' +} 2>&1 | tee "$log" | tee >(sed -u "s/^/[$loader] /" >> "$TEST_LOG") | sed -u 's/\x1b\[[0-9;]*m//g' rc=${PIPESTATUS[0]} # the test itself: an abort (exit inside the braces) must not pass as 0 failed checks fails="$(grep -c '^FAIL' "$log")" if [[ $rc -ne 0 && $fails -eq 0 ]]; then diff --git a/scripts/vminstall.sh b/scripts/vminstall.sh index 44dc5a1..beb2c85 100755 --- a/scripts/vminstall.sh +++ b/scripts/vminstall.sh @@ -176,8 +176,11 @@ VM_MEM="${VM_INSTALL_MEM:-${VM_MEM:-}}" VM_SERIAL="$VM_DIR/serial.log" VM_ISO="$ ./run.sh install "${run_flags[@]}" > vm-install.log 2>&1 & qemu=$! # 90 minutes; a failure reported by the live system ends it at once (it stays up after one) +waited=0 for _ in $(seq 1080); do kill -0 $qemu 2>/dev/null || break + # A sign of life every minute (CI shows nothing else for ~10 minutes): where the live installer is. + (( waited++ % 12 == 0 )) && echo " .. installing, $((waited * 5 / 60)) min: $(tail -n 1 "$www/install.log" 2>/dev/null | cut -c1-110)" [[ -s "$www/status" && "$(cat "$www/status")" != ok ]] && { sleep 5; kill $qemu 2>/dev/null; wait $qemu 2>/dev/null; break; } sleep 5 done