Skip to content

发版运维速查(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:e2e

2. 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
2settlement-create 保存与 Web 列表一致;关联出库可搜单号
3结算列表工人/日期筛选与 Web 同参
4详情「标记已发放」、凭证预览
5工人 payslip 仅本人
6经理报表站点概览与 Web /acc/home 一致
7Web 工人档案导出记工 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_IDP2 入库冒烟(可选)未设则 goods/page 自动选原料
E2E_SUPPLIER_IDP2 入库冒烟(可选)未设则 suppliers/page 自动选
E2E_OUTBOUND_ORDER_ID / E2E_OUTBOUND_LINE_IDP2 退货冒烟(可选)未设则自动找可退单
  • 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(若改权限)

TaskFlow 内部文档 Released under the MIT License.