Files
Jyotisha/docs/tasks/PROGRESS-release-path-production-20261014.md
T
jesse-uxandGrok (agent loop) 00e6efdbfa 发布可以跟上只多了文档的测试环境头
四个生产工作流改用同一条发布修订:最近一次代码门禁成功的提交可以发布,后面只多文档不再挡住。生产环境拒绝测试验证码。63 个还没上生产的迁移写了分级、演练脚本和首发步骤。没有点任何生产按钮。

自测:发布修订 7 通过,演练安全 3 通过,tsc 0 错,lint 0 error。本机空库演练在服务角色读人物表处按设计停止(退出码 4,其他人物已确认行数为 0)。

Co-Authored-By: Grok (agent loop)
2026-10-14 10:24:40 +08:00

3.4 KiB
Raw Blame History

PROGRESS · 发布通路改规则 + 生产首发(2026-10-14)

  • 分支:codex/release-path-production-20261014
  • 基线:从 origin/staging 新建,开工 HEAD f4c53e7f9fad1a3de08b613c3470f8e4a2f62116。任务书里的 48a2fadd 是更早的记录;74384be0 是本基线的祖先。
  • 开工时测试环境健康检查的版本号与这个 HEAD 相同。收尾时公开健康检查已变成 cb8004a188afd51ec440a7678f91be801fbd3147,本分支没有变基到那个提交。本轮没有改测试环境。
  • 预检 scripts/pre_work_check.py:远端仓库可见,Python 可用。碎片扫描 90 秒超时,聚焦测试 45 秒超时。不能写成预检通过。
  • 编号:本树 docs/BUG_HISTORY.md 最大号原是 BUG-1346。BUG-1347 在另一条还没合入的分支上,本单用 BUG-1348、BUG-1349,避免以后撞号。

做了什么

  1. 四个生产工作流共用 deploy/resolve-release-revision.sh。发布修订是最近一次代码门禁成功的提交。测试环境头可以在它后面只多文档。回滚仍走原来的确认和祖先检查。
  2. 生产环境拒绝测试验证码:环境校验看见这个变量就失败;运行时如果站点是生产域名并且配了验证码,就拒绝启动。
  3. 63 个新增迁移的清单、演练脚本、首发步骤和发布后核对都写好了。迁移演练没有单独的 Gitea 按钮,这是决策记录只授权四个工作流之后的做法。
  4. 没有点任何生产按钮,没有推 staging 或 main。

自测

命令 结果
tests/test_resolve_release_revision.py 7 通过
tests/test_rehearse_production_migrations.py 3 通过。拒绝非生产路径、拒绝生产库名、计划输出把停止文件留在第二批
tsc --noEmit -p frontend 0 错
npm run lint --prefix frontend 0 error,125 条原有 warning
四个生产工作流 js-yaml 能解析
新脚本 bash -n 通过(工作流测试里的语法检查那一条通过)
生产发布、恢复点、生产迁移、手动发布门的文本合同 通过
生产站拒绝测试验证码的身份配置测试 通过

同一批前端测试文件里还有 8 条失败,0 条取消。它们是这台 Windows 机器的环境,不是把断言改弱:

  • 环境文件校验要求 Unix 权限 0600。Git Bash 里 chmod 600 之后 stat 仍是 644,脚本在看到验证码检查之前就停了。
  • 工作流 YAML 检查找到的 python 是 Windows 占位程序,退出码 9009。四个生产文件另用项目里的 js-yaml 解析通过。
  • 两条同步测试缺 rsync。
  • 一条回滚测试在临时目录上 install 改权限被拒绝。
  • 纯文档范围脚本在这台机器上没有 python3,退出码 49。发布修订测试用仓库里的 Python 跑过了同一条判断。

迁移演练(本机一次性库)

空库,角色按主机引导脚本的名字建好,没有真实个人资料。deploy/rehearse-production-migrations.sh 在本地模式跑完:

  • 停止文件之前 160 个迁移,全部应用后 174 个。
  • other_person_accepted_rows=0
  • 两条标题修补 NOTICE 都是 0
  • 网页角色读账户资料、读会话列表:true
  • 服务角色读人物表:false,退出码 4

这是预期停止。BUG-1063 的授权不在这 63 个文件里。演练库已删除。在那笔授权进入这一批之前,不要点生产迁移。主机上的正式演练仍由产品按 runbook 做,本机这次不能代替主机恢复点。