diff --git a/Scripts/staging-gate.sh b/Scripts/staging-gate.sh index 12ec824..18c6018 100755 --- a/Scripts/staging-gate.sh +++ b/Scripts/staging-gate.sh @@ -180,3 +180,23 @@ if [ "$EDGE" != "ok" ]; then exit 1 fi echo "DEPLOY OK — prod healthy at the edge; rollback available: docker tag flamenet-relay:previous flamenet-relay:prod && docker compose up -d --no-deps relay" + +# 🔴 **Carry the test fleet with production, or the live suites lie.** +# +# relay1/2/3 pin `flamenet-relay:prod`, but a container keeps running the image +# it started with — so every deploy here silently leaves the fleet a build +# behind. It was ELEVEN DAYS stale when that was first noticed, answering every +# health check the whole time, while the Android live suite ran against it and +# reported green about a build production had already moved off. +# +# ⚠️ Best-effort on purpose. The fleet is disposable and a production deploy +# must not fail because a test relay would not come up — but it must also not +# quietly stop matching, so the outcome is printed either way and +# `messenger-privacy-check` asserts it independently. +if [ -d /srv/test/relays ]; then + if (cd /srv/test/relays && docker compose up -d >/dev/null 2>&1); then + echo "FLEET OK — relay1/2/3 recreated on the image production now runs" + else + echo "FLEET WARNING — the test fleet did not update; live suites would test the OLD build" + fi +fi