ci(deploy): probe backend /readyz so a dead backend fails the deploy #94

Merged
developer merged 2 commits from feature/deploy-backend-probe into development 2026-06-20 19:04:52 +00:00
Owner

What

Add a backend /readyz probe to the deploy job's health check.

Why

While fixing the dictionary seed-drift issue, a crash-looping backend twice passed the deploy green. Root cause: the post-deploy probe only checks GET / (static landing) and GET /app/ (gateway-served SPA shell) through the edge caddy — neither needs the backend, so a dead backend is invisible to it.

(Note: the deploy checkout is fine — it builds the PR's code, refs/pull/N/head; an earlier hunch that "PR deploys build base" was wrong, confirmed from the run #442 deploy log. The real gap was the probe.)

Change

Probe the landing, gateway and backend: add a third check, http://backend:8080/readyz on the scrabble-internal network, to the same retry loop; dump backend logs on failure. A backend that cannot become ready now fails the deploy loudly instead of going green.

Verification

This PR's own test-contour deploy exercises the new probe (the backend is healthy now → it should pass). One-line shell addition to an existing step; YAML structure unchanged.

## What Add a backend `/readyz` probe to the deploy job's health check. ## Why While fixing the dictionary seed-drift issue, a crash-looping backend twice passed the deploy **green**. Root cause: the post-deploy probe only checks `GET /` (static landing) and `GET /app/` (gateway-served SPA shell) through the edge caddy — **neither needs the backend**, so a dead backend is invisible to it. (Note: the deploy checkout is **fine** — it builds the PR's code, `refs/pull/N/head`; an earlier hunch that "PR deploys build base" was wrong, confirmed from the run #442 deploy log. The real gap was the probe.) ## Change `Probe the landing, gateway and backend`: add a third check, `http://backend:8080/readyz` on the `scrabble-internal` network, to the same retry loop; dump backend logs on failure. A backend that cannot become ready now **fails the deploy loudly** instead of going green. ## Verification This PR's own test-contour deploy exercises the new probe (the backend is healthy now → it should pass). One-line shell addition to an existing step; YAML structure unchanged.
developer added 1 commit 2026-06-20 18:49:31 +00:00
ci(deploy): probe backend /readyz so a dead backend fails the deploy
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 16s
CI / ui (pull_request) Successful in 53s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Failing after 26s
649b90024f
The post-deploy health check probed only the static landing (`GET /`) and the
gateway-served SPA shell (`GET /app/`) through the edge caddy. Neither needs the
backend, so a crash-looping backend passed the deploy green — which masked the
seed-drift crash until it was inspected by hand.

Add a third probe, `http://backend:8080/readyz` on the internal network, to the
same retry loop, and dump the backend logs on failure. A backend that cannot
become ready now fails the deploy loudly instead of going green.
developer added 1 commit 2026-06-20 18:56:30 +00:00
ci: re-trigger deploy to rebuild the contour app tier cleanly
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 15s
CI / ui (pull_request) Successful in 53s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 48s
76b62dea1f
owner approved these changes 2026-06-20 19:04:14 +00:00
developer merged commit 9824214fd7 into development 2026-06-20 19:04:52 +00:00
developer deleted branch feature/deploy-backend-probe 2026-06-20 19:04:52 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#94