Skip to content

发版运维速查(STRICT · 验收 · M4)

acc-release-acceptance.mdenv-pack-strict-and-e2e.mdpermission-staging-checklist.mdroadmap-four-tracks.md 配套。开发改代码后仍须 pnpm run check;本页侧重 上线前运维闭环


0. 发版前一条龙(推荐)

对外版本号(发版前手动升一次,再提交):

bash
pnpm run version:bump patch    # 或 minor / major
# 仅校正各端与根 package.json 不一致时:
pnpm run version:sync

以根目录 package.jsonversion 为准,同步 backend / frontend / miniapppackage.jsonminiapp/src/manifest.jsonversionNameversionCode)。日常开发勿跑;不要在每次 commit 自动 bump。

bash
pnpm run prerelease

等价于 pnpm run check(全端 verify)+ check:release-acceptance(staging 权限 + 月结 SQL,后者需 backend/.envDATABASE_URL)。

手工项(STRICT §4.2 签字、M4 表、Secrets)见下文 §2–§4。

CI(PR / main):工作流 .github/workflows/prerelease-gates.yml 自动跑 check:stagingcheck:env-pack,并上传 artifact release-signoff-templatesstrict-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/.envDATABASE_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(只读对照)。

#用例
1btn_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只读 UIbtn_acc_*_write
E2E_PASSWORD_READONLY只读 UI
E2E_ACCOUNT_WRITE写过账 + API 冒烟btn_acc_outbound_writebtn_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:backendpnpm run smoke:acc-stock-p2
  • 手动只读 UI:Actions → E2E Readonly Stack
  • 本地全栈 API:pnpm run dev:backendpnpm 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.