Release Checklist¶
Preconditions to confirm before cutting a release tag (v*.*.*) - which is what triggers the
staging → production path in Jenkins (see CI/CD → Jenkins).
Before tagging¶
- [ ]
masteris green on GitHub Actions (backend restore/build/test, frontend lint/build, docs build - see CI/CD → GitHub Actions). - [ ] Dev deploy (auto-triggered on the
mastermerge) is healthy - spot-checkkubectl get pods -n akshayabazaar-dev. - [ ] No open, unresolved P0/P1 issue against the commit being tagged.
- [ ] Database migrations in this release are additive-only (no destructive column/table drops) - see Operations → Rollback for why this matters for safe rollback.
- [ ] Any new required configuration (Secret keys, ConfigMap values) is already applied to staging and production, or the release includes a safe default/fallback for its absence.
Tag and let Jenkins run¶
After staging deploys (automatic)¶
- [ ] Jenkins'
Smoke testsstage passed. - [ ]
.\scripts\verify-staging.ps1→14 PASS, 0 WARNING, 0 FAIL. - [ ] Manual exploratory check of the specific feature(s) this release changes, on
https://staging.akshayathreadworld.in.
Before approving production promotion¶
- [ ] The approver (
release-managersgroup) has personally reviewed the staging verification result above - not just that the pipeline reached the approval gate. - [ ] A pre-release database backup/checkpoint exists - see Deployment → Production "Backup/checkpoint".
- [ ] Rollback plan for this specific release is understood (which revision to roll back to if needed, whether any migration in it is safe to roll back across).
After production promotion¶
- [ ]
Production smoke testsstage passed. - [ ]
.\scripts\verify-staging.ps1 -Namespace akshayabazaar-production -ReleaseName akshayabazaar -IngressHost akshayathreadworld.in→14 PASS, 0 WARNING, 0 FAIL. - [ ] Monitor error rates/logs for the next observation window - see Operations → Monitoring.
If anything above fails¶
Stop and use Operations → Rollback - do not attempt a second promotion attempt to "fix forward" without understanding why the first one failed.