CD hardening: rollback on failed dev deploy; define the prod deploy path (tag-triggered or documented) #66
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot#66
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
cd.yml:54-76 deploys dev by SSH pull + rebuild + 40s health poll; a failed
migration or crash loop leaves dev down with no rollback. Capture the
previously deployed ref before pulling; on health timeout, restore it and
rebuild (and fail the run loudly). Separately: #12's candidate scope included
prod deploy on tag/release — never delivered, and with docs/HANDOFF.md
retired (#38) the manual prod procedure is no longer written anywhere. Either
add a tag-triggered prod job with an approval gate, or at minimum document
the manual prod deploy + rollback procedure in README.
Acceptance criteria:
Filed from the 2026-07-17 codebase audit (
docs/.internal/report-2026-07-17.md), finding F-27.Done in #95 (merged to
main).cd.ymlnow captures the currently-deployed commit before pulling and, if the post-deploy health check fails, checks that ref back out, rebuilds, and fails the run — so a bad migration or crash-loop restores the dev box to the last-working build instead of leaving it mid-deploy. The happy path is unchanged. README gained a manual Production deploy section (checkout tag → build withAPP_VERSION→ migrations run on startup → health check → redeploy previous tag to roll back). Automated prod-on-tag deploy remains a future enhancement — deliberately not built, since no prod host/secrets are assumed here.