integration: post-mortem on SSH timeout (serial console + domstate), KEEP_VMS escape hatch
All checks were successful
CI/CD / lint (pull_request) Successful in 46s
CI/CD / typecheck (pull_request) Successful in 1m13s
CI/CD / test (pull_request) Successful in 1m12s
CI/CD / build (pull_request) Successful in 2m14s
CI/CD / publish-rpm (pull_request) Has been skipped
CI/CD / publish-deb (pull_request) Has been skipped

A VM that installs fine but never reaches SSH was destroyed by afterAll
with the only evidence -- its console -- inside it. Now the failure
carries the last serial lines and domstate, and KEEP_VMS=1 preserves
the machine for inspection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6HNx6cyr4J4CiMGCy1wkF
This commit is contained in:
Michal
2026-10-14 22:46:32 +01:00
parent 16659236f2
commit 8e00898c6f
2 changed files with 35 additions and 7 deletions

View File

@@ -91,7 +91,10 @@ describe("dedicated data disks on real hardware", () => {
}, 20 * 60_000);
afterAll(async () => {
destroyVms(...created);
// KEEP_VMS=1 leaves the VM behind for a post-mortem (virsh console,
// screenshot, mounting the qcow2). Without it a failed boot is destroyed
// along with every clue about why it failed.
if (!process.env["KEEP_VMS"]) destroyVms(...created);
try { await h?.close(); } catch { /* closed */ }
try { destroyPxeNetwork(); } catch { /* gone */ }
}, 5 * 60_000);