From befbc8e205d2d378221086531a9d885726580ffe Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 27 May 2026 14:35:00 +0800 Subject: [PATCH] chore: include production build in release verification --- .github/PULL_REQUEST_TEMPLATE.md | 1 + README.md | 3 ++- docs/operations.md | 3 ++- docs/release-readiness.md | 3 ++- scripts/verify-release.mjs | 5 +++++ 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4a6ba7d3c..ed1325942 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,6 +15,7 @@ - [ ] `pnpm check:branch` - [ ] `pnpm check:quality` +- [ ] `pnpm build` - [ ] `AUTH_TRUST_HOST=true PORT=3001 pnpm dev` - [ ] `SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm smoke:routes` diff --git a/README.md b/README.md index a3b02eecc..55809b878 100644 --- a/README.md +++ b/README.md @@ -98,11 +98,12 @@ git fetch github main --prune pnpm check:branch pnpm check:quality pnpm audit:security +pnpm build AUTH_TRUST_HOST=true PORT=3001 pnpm dev SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm smoke:routes ``` -发布或创建 PR 前可使用一条命令串起质量、安全和路由烟测: +发布或创建 PR 前可使用一条命令串起质量、安全、生产构建和路由烟测: ```bash SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release diff --git a/docs/operations.md b/docs/operations.md index 04ecb741d..b4e6ff60b 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -21,6 +21,7 @@ git diff --check pnpm check:artifacts pnpm clean:artifacts pnpm audit:security +pnpm build SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release ``` @@ -36,7 +37,7 @@ pnpm check:quality SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release ``` -`pnpm verify:release` 会串起 `pnpm check:quality`、`pnpm audit:security` 和 `pnpm smoke:routes`。它要求显式设置 `SMOKE_BASE_URL`,避免误把路由烟测跑到错误环境。 +`pnpm verify:release` 会串起 `pnpm check:quality`、`pnpm audit:security`、`pnpm build` 和 `pnpm smoke:routes`。它要求显式设置 `SMOKE_BASE_URL`,避免误把路由烟测跑到错误环境。 其中 `pnpm check:artifacts` 会检查 `.DS_Store`、swap 文件、`.env.local`、`.claude/`、migration backup 和 `tsconfig.tsbuildinfo` 等本地污染物是否被 Git 追踪。 diff --git a/docs/release-readiness.md b/docs/release-readiness.md index a48b37f87..423e747d0 100644 --- a/docs/release-readiness.md +++ b/docs/release-readiness.md @@ -17,11 +17,12 @@ SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release - `pnpm check:quality` 通过 lint、日志脱敏门禁、公开交付面品牌治理、CI hygiene、环境变量示例卫生、secret hygiene、package metadata、测试门禁卫生、轻量 helper 回归测试、类型检查、diff hygiene 和 tracked 污染物检查。 - `pnpm check:branch` 确认当前分支相对 `github/main` 没有 dry-run merge 冲突;behind main 会提示为 warning,发布前可用 `REQUIRE_UP_TO_DATE=true` 提升为失败。 - `pnpm audit:security` 输出已审计,Dependency Audit workflow 也应通过;若仍有 critical/high,必须在 [dependency-risk-register.md](dependency-risk-register.md) 中记录 remediation 或风险接受状态。 +- `pnpm build` 完成生产构建,验证 Next.js route collection、静态/动态页面边界和构建期 TypeScript。 - `pnpm smoke:routes` 验证 `/` 返回 200。 - `/classic` 和 `/chat/test-id` 重定向到 `/`。 - `/settings` 未登录重定向到 `/login?callbackUrl=%2Fsettings`。 -`pnpm verify:release` 会依次运行 `pnpm check:quality`、`pnpm audit:security` 和 `pnpm smoke:routes`。必须显式提供 `SMOKE_BASE_URL`,确保路由烟测指向本地、预发或生产中的明确目标。 +`pnpm verify:release` 会依次运行 `pnpm check:quality`、`pnpm audit:security`、`pnpm build` 和 `pnpm smoke:routes`。必须显式提供 `SMOKE_BASE_URL`,确保路由烟测指向本地、预发或生产中的明确目标。 ## 发布边界 diff --git a/scripts/verify-release.mjs b/scripts/verify-release.mjs index b6715f09c..c460640f6 100644 --- a/scripts/verify-release.mjs +++ b/scripts/verify-release.mjs @@ -16,6 +16,11 @@ const steps = [ command: "pnpm", args: ["audit:security"], }, + { + name: "production build", + command: "pnpm", + args: ["build"], + }, ]; if (baseUrl) {