Why: Second-instance writes stay closed until an independent replay or an admitted CI gate, plus a second host. Those remaining steps needed a durable spec. Evidence: Task-card evidence rows read the merged PRs, tree equality, CI runs 2783/2810/2816, and Dev main branch protection. Source SELF. Drills were not run. Impact: Docs and the task card only. Checklist grades stay SELF or not started. The collaboration proposal body stays r2.3. Refs: docs/release-multi-instance.md Co-authored-by: Cursor <cursoragent@cursor.com>
3.3 KiB
C4/C5 快速档接入 CI 的可行性(未改 workflow)
状态:只读评估。本次没有修改 .gitea/workflows/ci.yaml,没有在 home-runner 上执行演练,
也没有形成 GATE。第二实例写流量保持关闭。
平台准入(2026-10-13 只读)
Dev main 的分支保护由 API 读出,证据在任务卡 .task/feature-u7-release-roadmap.md,
来源 SELF:
enable_push为 false,block_on_outdated_branch为 trueenable_status_check为 false,status_check_contexts为空,required_approvals为 0
这与 policy/platform-admission.md 在 2026-10-05 的观察一致,只说明配置当前如此。
它没有证明失败检查或陈旧候选会被拒绝。runner 隔离、token 权限和工作流来源本次没有核验。
因此,即便以后某个 job 变绿,在所有者按该文件完成准入之前,检查单不能把该次运行写成 GATE。 改分支保护属于高后果操作,本评估不准备执行命令。
现有 CI 能提供什么
test-pg 在 ubuntu-latest 上安装 PostgreSQL、pgvector 和 Redis,并以 root 容器、
无 sudo 为前提,用 runuser 或 su 切到 postgres 用户操作已有集群。
现有库端口是 5432,Redis 是 6399。演练端口 18980–18999 与这两个端口不重叠。
workflow 没有写 timeout-minutes。平台默认时限本次没有读取。
脚本直接放进 CI 时会碰到的差异
这些差异来自当前脚本和 workflow 文本。除资源数字外,都还没有在 home-runner 上实测。
- 磁盘与负载门禁。
tests/ops/lib.sh的ops_resource_gate要求可用空间至少 100GiB,且 load1 不超过 16,否则退出 3。作者机器在核验命令里打印了local_avail_kb=1164165728、local_id=1000。这是作者主机,不是 runner。 runner 的磁盘和负载未测。未测通过前,job 不能假设自己过得了这道门。 pg_ctl的 PATH。tests/ops/run_backup_drill.sh用command -v pg_ctl, 找不到就退出。scripts/svc.sh的pg_bindir还会找pg_config --bindir和/usr/lib/postgresql/*/bin。Ubuntu 包里的pg_ctl通常在版本目录,不一定在 PATH。 作者机器的pg_ctl来自 Homebrew,不能外推到 runner。- root 下的
initdb。 演练通过scripts/svc.sh db create调用initdb。 workflow 写明运行器容器以 root 运行。PostgreSQL 的initdb拒绝 root。test-pg避开了这条路,它启动发行版集群再切到postgres用户。 本次没有在 runner 上执行initdb。 - C5 的固定等待。
run_backup_drill.sh把标记写入时长写成-dur 5m, 恢复后还有sleep 120。脚本没有快速档参数。K1–K7、工件 sha256 和跨用户 404 保持原判据。 缩短标记窗口需要改脚本,并仍能测出不超过 300 秒的 RPO。本次不改脚本。 - C4 的固定等待。
run_fault_drill.sh --fault all含约 60 秒的断连窗口和若干秒级等待。 本次没有计时一次完整演练。
若以后要做 job
job 与现有 test、test-pg、svc-realcombo 并列。实现前先在 runner 上确认磁盘、
pg_ctl 位置,以及非 root 用户能否 initdb。通过后的证据要带运行链接、执行身份和完整 SHA。
平台准入未完成时,检查单的写法保持「CI 运行已绿,GATE 未成立」。