diff --git a/iso/builder/setup-builder.sh b/iso/builder/setup-builder.sh index e1d9565..e593f70 100644 --- a/iso/builder/setup-builder.sh +++ b/iso/builder/setup-builder.sh @@ -37,7 +37,8 @@ apk add \ wget \ curl \ tar \ - xz + xz \ + screen # --- audit runtime packages (verify they exist in Alpine repos) --- echo "" diff --git a/scripts/run-builder.sh b/scripts/run-builder.sh index 7c56f5f..687b9b6 100755 --- a/scripts/run-builder.sh +++ b/scripts/run-builder.sh @@ -35,9 +35,10 @@ echo "=== bee builder ===" echo "Builder: ${BUILDER_HOST}" echo "" -ssh -o StrictHostKeyChecking=no root@"${BUILDER_HOST}" /bin/sh </dev/null || true + +echo "--- starting build in screen session (survives SSH disconnect) ---" +echo "--- log: \$LOG ---" +screen -dmS bee-build sh -c "sh iso/builder/build-debug.sh ${EXTRA_ARGS} > \$LOG 2>&1; echo \$? > /tmp/bee-build-exit" + +# Stream log until build finishes +echo "--- streaming build log (Ctrl+C safe — build continues on VM) ---" +while screen -list | grep -q bee-build; do + tail -n +1 -f "\$LOG" 2>/dev/null & TAIL_PID=\$! + sleep 1 + while screen -list | grep -q bee-build; do sleep 2; done + kill \$TAIL_PID 2>/dev/null || true + break +done +tail -n 20 "\$LOG" 2>/dev/null || true + +EXIT_CODE=\$(cat /tmp/bee-build-exit 2>/dev/null || echo 1) +exit \$EXIT_CODE +ENDSSH echo "" echo "=== downloading ISO ==="