Why
After a merge to main, the CircleCI deploy job runs deno deploy --org webjamapps --app web-jam-devotional --prod and stops. A green deploy job means only that the deno deploy command returned exit 0 — nothing confirms the live service is actually up or running the just-shipped version. A broken or stale deploy can sit there silently with no signal.
What
After the deploy step, CI must verify the live web-jam-devotional Deno Deploy service is reachable and running the version we just shipped, and surface a real pass/fail on the existing CircleCI check.
This has two parts:
- Expose the running version. The service does not currently expose its version. Add an endpoint (e.g.
/version or /health) that returns the deno.json version.
- Post-deploy smoke check. In the
deploy job, after deno deploy, poll the live production URL and assert it returns 200 and the version matches deno.json (with retries to allow for deploy propagation). Fail the job if it never matches.
Acceptance criteria
- The CircleCI
deploy job (main-only) goes red if, after deploying, the live service is unreachable or not serving the new version — and green only when live + version-matched.
- The devotional service exposes its
deno.json version over HTTP.
- The smoke check reads the just-shipped version from
deno.json and compares it to the live endpoint, with bounded retries for propagation.
Scope notes
- Indicator = the existing CircleCI deploy check, made meaningful (look-at signal). A push notification (Slack/email) on success/failure is a deferred follow-up, not part of this issue.
- Confirmed setup: deploy is CircleCI
deploy job, main-only, gated on gate, deploying to Deno Deploy (web-jam-devotional --prod, DENO_DEPLOY_TOKEN). See .circleci/config.yml.
Why
After a merge to
main, the CircleCIdeployjob runsdeno deploy --org webjamapps --app web-jam-devotional --prodand stops. A green deploy job means only that thedeno deploycommand returned exit 0 — nothing confirms the live service is actually up or running the just-shipped version. A broken or stale deploy can sit there silently with no signal.What
After the deploy step, CI must verify the live
web-jam-devotionalDeno Deploy service is reachable and running the version we just shipped, and surface a real pass/fail on the existing CircleCI check.This has two parts:
/versionor/health) that returns thedeno.jsonversion.deployjob, afterdeno deploy, poll the live production URL and assert it returns 200 and the version matchesdeno.json(with retries to allow for deploy propagation). Fail the job if it never matches.Acceptance criteria
deployjob (main-only) goes red if, after deploying, the live service is unreachable or not serving the new version — and green only when live + version-matched.deno.jsonversion over HTTP.deno.jsonand compares it to the live endpoint, with bounded retries for propagation.Scope notes
deployjob,main-only, gated ongate, deploying to Deno Deploy (web-jam-devotional --prod,DENO_DEPLOY_TOKEN). See.circleci/config.yml.