fix(ci)(interim): exempt platform-build from all-required sentinel hard-fail (#664) #668

Closed
infra-lead wants to merge 2 commits from infra/664-interim-platform-build-exempt into main

View File

@ -564,9 +564,21 @@ jobs:
echo "$results" | python3 -c '
import json, sys
ns = json.load(sys.stdin)
# Exclude null (Phase 3 suppressed / in-flight) from the bad list.
# TEMPORARY (interim per #664, 2026-05-12, Release-Manager-approved): demote
# `platform-build` back to Phase-3 treatment in this check. It has a pre-existing
# `internal/handlers` test regression (sqlmock/symlink/MCP fixes are on `staging`
# at af95561f / #634, not yet ported to `main` because main↔staging diverged on
# internal/handlers/ ~1841 ins/745 del — a clean cherry-pick conflicts; needs a
# fresh re-apply against main). Gitea ignores job-level `continue-on-error: true`
# (quirk #10), so `platform-build`'s result is `failure` not `null` — hence it
# would otherwise hard-fail this sentinel. Exempting it here stops the cascade to
# `CI / all-required` WITHOUT hiding the failure: `CI / Platform (Go)` stays red
# and #664 stays open as the fix tracker. **DELETE PHASE4_EXEMPT (and this block)
# when #634s fix lands on main / #664 closes — that re-enforces RFC #219 Phase 4.**
PHASE4_EXEMPT = {"platform-build"}
# Exclude null (Phase 3 suppressed / in-flight) and PHASE4_EXEMPT from the bad list.
bad = [(k, v.get("result")) for k, v in ns.items()
if v.get("result") not in ("success", None)]
if v.get("result") not in ("success", None) and k not in PHASE4_EXEMPT]
if bad:
print(f"FAIL: jobs not green:", file=sys.stderr)
for k, r in bad: