2026-04-28 01:09:17 +08:00
# Production Release Checklist
Use this checklist before every production deployment.
## Code
- [ ] Working tree is clean.
- [ ] Latest commit is the intended release commit.
- [ ] `npm ci` succeeds from a clean install.
2026-04-28 09:04:03 +08:00
- [ ] Legacy tutorial redirects point to `/en/support/tutorial` .
2026-04-28 01:09:17 +08:00
- [ ] `npm run typecheck` passes.
- [ ] `npm run build` passes.
- [ ] `npm run payload:migrate:status` shows all migrations as `Yes` on the release database.
- [ ] `payload_migrations` has no `batch = -1` dev marker before exporting/importing the database.
2026-04-28 09:16:15 +08:00
- [ ] Admin login shows a verification code, invalid captcha fails before password validation, and `/admin` redirects to `/admin/login` when logged out.
2026-04-28 09:22:18 +08:00
- [ ] Legacy tutorial redirects are present in CMS Redirects, not in `next.config.mjs` .
2026-04-28 01:09:17 +08:00
- [ ] No new user-facing fallback copy was introduced without a CMS field.
## Environment
- [ ] `NEXT_PUBLIC_SITE_URL` is the final public domain.
- [ ] `PAYLOAD_SECRET` is set and is not `change-me` or the example value.
- [ ] `DATABASE_URI` points to the production PostgreSQL database.
- [ ] `PAYLOAD_DB_PUSH=false` is set.
- [ ] `PAYLOAD_RUN_MIGRATIONS_ON_START=false` is set unless a one-off controlled migration boot is intentionally planned.
2026-04-29 14:23:00 +08:00
- [ ] Upload directories `media/` , `files/` , and `videos/` are persistent and backed up.
2026-04-28 09:04:03 +08:00
- [ ] Database dump and upload archive are generated from the same local release window.
2026-04-28 01:09:17 +08:00
## CMS Data
- [ ] English and Chinese homepage content render.
- [ ] Product list and at least one product detail page render in both locales.
- [ ] Downloads list and one download detail page render.
- [ ] News list and one news detail page render.
- [ ] Reviews page tabs render, with local media covers where present.
- [ ] Support page and video tutorials render, with local media covers.
2026-04-29 14:23:00 +08:00
- [ ] Where to Buy page store links, dealer tabs, and map visibility match CMS settings.
2026-04-28 01:09:17 +08:00
## Smoke Routes
Run:
```bash
npm run smoke -- " $NEXT_PUBLIC_SITE_URL "
```
Required manual spot checks:
- `/en`
- `/zh`
- `/en/products/dmp-a10`
- `/en/reviews?tab=reviews`
- `/en/support`
- `/en/support/tutorial`
- `/admin`
2026-04-28 09:16:15 +08:00
- `/admin/login`
2026-04-28 01:09:17 +08:00
- `/api/health`
2026-04-28 09:16:15 +08:00
- `/api/admin/captcha`
2026-04-28 01:09:17 +08:00
## Launch Notes
- Keep old production database and upload volume snapshots until the new release has passed smoke checks and editorial QA.
- If schema push or migration prompts appear during app startup, stop. Production startup should not be running schema push or migrations.
- If media thumbnails are missing, verify the upload volume before changing CMS records.