Skip to content

Verify web-jam-devotional is live + correct version after deploy (post-deploy smoke check) #97

Description

@JoshuaVSherman

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:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions