65 lines
2.5 KiB
Markdown
65 lines
2.5 KiB
Markdown
# 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.
|
|
- [ ] Legacy tutorial redirects point to `/en/support/tutorial`.
|
|
- [ ] `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.
|
|
- [ ] Admin login shows a verification code, invalid captcha fails before password validation, and `/admin` redirects to `/admin/login` when logged out.
|
|
- [ ] Legacy tutorial redirects are present in CMS Redirects, not in `next.config.mjs`.
|
|
- [ ] 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.
|
|
- [ ] Upload directories `media/`, `files/`, and `videos/` are persistent and backed up.
|
|
- [ ] Database dump and upload archive are generated from the same local release window.
|
|
|
|
## 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.
|
|
- [ ] Where to Buy page store links, dealer tabs, and map visibility match CMS settings.
|
|
|
|
## 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`
|
|
- `/admin/login`
|
|
- `/api/health`
|
|
- `/api/admin/captcha`
|
|
|
|
## 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.
|