Appearance
发版运维速查(STRICT · 验收 · M4)
与 acc-release-acceptance.md、env-pack-strict-and-e2e.md、permission-staging-checklist.md、roadmap-four-tracks.md 配套。开发改代码后仍须 pnpm run check;本页侧重 上线前运维闭环。
0. 发版前一条龙(推荐)
对外版本号(发版前手动升一次,再提交):
bash
pnpm run version:bump patch # 或 minor / major
# 仅校正各端与根 package.json 不一致时:
pnpm run version:sync以根目录 package.json 的 version 为准,同步 backend / frontend / miniapp 的 package.json 及 miniapp/src/manifest.json(versionName、versionCode)。日常开发勿跑;不要在每次 commit 自动 bump。
bash
pnpm run prerelease等价于 pnpm run check(全端 verify)+ check:release-acceptance(staging 权限 + 月结 SQL,后者需 backend/.env 的 DATABASE_URL)。
手工项(STRICT §4.2 签字、M4 表、Secrets)见下文 §2–§4。
CI(PR / main):工作流 .github/workflows/prerelease-gates.yml 自动跑 check:staging、check:env-pack,并上传 artifact release-signoff-templates(strict-signoff-checklist.md + release-signoff-bundle.md)。配置 DATABASE_URL secret 后同 workflow 会跑 check:month-close。
手动发版:Actions → Release acceptance(含可选 pnpm run prerelease)。
1. 一条命令(仅验收子集)
bash
pnpm run check:release-acceptance| 子步骤 | 说明 |
|---|---|
check:staging | 权限码同步、Jest 权限、预置角色、env.staging.example 的 STRICT 声明 |
check:month-close | 月结 SQL 巡检(需 backend/.env 的 DATABASE_URL) |
可选 Web 冒烟(本地已 pnpm run dev:web 或 preview):
bash
pnpm run test:e2e2. STRICT 路由(预发 / 生产)
bash
# 合并 strict 片段到 deploy/docker/.env.pack(见 env-pack-strict-and-e2e.md)
pnpm run check:env-pack
# 部署后重启 gateway / sys / acc确认:
ini
ACC_ROUTE_GUARD_STRICT=true
SYS_ROUTE_GUARD_STRICT=true运维逐步操作:strict-signoff-ops-runbook.md(合并 STRICT → 重启 → db:sync-roles-perms → M3/M4/§4 验收 → §4.2 签字存档)。
签字表:permission-staging-checklist.md §4.2 · 合并包 release-signoff-bundle.md · CI artifact release-signoff-templates。
3. M4 经理结算(手工 ≈15 分钟)
可打印表:m4-settlement-manual-checklist.md
角色:MINI_MANAGER(写)、ACC_PC_SETTLEMENT_READ(只读对照)。
| # | 用例 | □ |
|---|---|---|
| 1 | 无 btn_acc_settlement_write:无 FAB、不可进 settlement-create | |
| 2 | settlement-create 保存与 Web 列表一致;关联出库可搜单号 | |
| 3 | 结算列表工人/日期筛选与 Web 同参 | |
| 4 | 详情「标记已发放」、凭证预览 | |
| 5 | 工人 payslip 仅本人 | |
| 6 | 经理报表站点概览与 Web /acc/home 一致 | |
| 7 | Web 工人档案导出记工 CSV |
改 seed / 角色后:
bash
pnpm --filter taskflow-backend run db:sync-roles-perms用户 重新登录。
4. GitHub E2E Secrets(防过账 UI 回退)
仓库 Settings → Secrets and variables → Actions 新建:
| Secret | 必填 | 说明 |
|---|---|---|
E2E_API_BASE_URL | 推荐 | 网关根 URL,如 http://host:3000(非 Vite 5000) |
E2E_SITE_ID | 写/只读 API 测 | 账号可访问的站点 UUID |
E2E_ACCOUNT_READONLY | 只读 UI | 无 btn_acc_*_write |
E2E_PASSWORD_READONLY | 只读 UI | |
E2E_ACCOUNT_WRITE | 写过账 + API 冒烟 | 含 btn_acc_outbound_write、btn_acc_stock_adjust_write 等 |
E2E_PASSWORD_WRITE | 写过账 + API 冒烟 | |
E2E_GOODS_RAW_ID | P2 入库冒烟(可选) | 未设则 goods/page 自动选原料 |
E2E_SUPPLIER_ID | P2 入库冒烟(可选) | 未设则 suppliers/page 自动选 |
E2E_OUTBOUND_ORDER_ID / E2E_OUTBOUND_LINE_ID | P2 退货冒烟(可选) | 未设则自动找可退单 |
- CI
e2e-smoke:guest 恒跑;配 Secret 后跑只读/写过账 UI +acc-api-smoke+acc-stock-p2-*(S1/S2/S3 正向 + 只读 403)。 - 发版前对照:
pnpm run check:p2-e2e-secrets(必填不齐 exit 1;CI 日志里用|| true仅提示)。 - 本地预发库冒烟:
pnpm run dev:backend后pnpm run smoke:acc-stock-p2。 - 手动只读 UI:Actions → E2E Readonly Stack。
- 本地全栈 API:
pnpm run dev:backend后pnpm run test:e2e -- acc-api-smoke。
详见仓库根 e2e/README.md(勿在 VitePress 内链该路径)。
5. 发版签字表
| 项 | □ | 日期 |
|---|---|---|
pnpm run version:bump(若对外发版) | ||
pnpm run check | ||
pnpm run check:release-acceptance | ||
| STRICT + §4.2 | ||
| 月结无阻塞 | ||
| M4 §3 已勾 | ||
db:sync-roles-perms(若改权限) |