smoke-compose (gated on image-build): * Rebuilds rutster-edge/engine/brain:smoke from warm GHA cache. * Runs deploy/smoke/compose_smoke.sh — `docker compose up -d --wait`, asserts all four services State=running, curls /healthz + /readyz through Caddy TLS (internal CA). Lighter than the all-in-one smoke (which already proved the WS path) — its job is the orchestrator shape + the network_mode: "service:engine" brain->engine tap posture. smoke-reload (gated on smoke): * Reuses rutster-allinone:smoke + the allinone_smoke.py WS helpers. * Runs deploy/smoke/reload_during_call.py — holds a live WS streaming frames at 20ms while a concurrent `caddy reload` fires mid-call; asserts zero frames dropped + WS survives across the reload. Regresses the stream_close_delay 24h mitigation against caddy #6420/ #7222 (TLS brief §5 risk 1; spec §9 reload-during-call smoke). Both jobs run on ubuntu-latest — separate runners for clearer failure attribution + parallelism (the smoke gate is the failing CI signal, not a single serial run). Signed-off-by: Aaron D. Lee <himself@adlee.work>
15 KiB
15 KiB