用途:帮助用户为 HeyEddi Spot 选择并接入正确的运行器路径,避免编造执行结论。
两类作业(不可混用):一是 GHA on Spot,位于 .github/workflows/*.yml 配合 workspace gha_spot_mode,检查名沿用同一 workflow Check,适用于已有 Actions 的仓库(默认);二是密封流水线,位于 eddi-ci.yaml 的 pipeline: jobs,检查名为 HeyEddi Runner: {job_id},适用于无 GHA 或极少 GHA、或小众密封检查。黄金规则:同一测试/构建不得在 GHA 与 pipeline: 中重复;优先 GHA + Spot 路由,保持 pipeline: {}。
优先 GHA 溢出/always:确认 .github/workflows/ 存在;每个 Linux 作业使用 runs-on: ${{ vars.HEYEDDI_RUNS_ON || 'ubuntu-latest' }};在 ci.heyeddi.com 设置 workspace Runners 模式为 overflow(先用 GitHub 分钟,耗尽后 Spot JIT)、always(Linux 作业首次即用 Spot)或 off(仅托管)。保持 eddi-ci.yaml 仅 Reviewer 且 pipeline: {}(使用 @heyeddi-ci-config)。限制:仅 Linux、私有仓库、需预付/有权限的 workspace,平台 kill switch 由运维掌控;overflow 可靠性仍可能中断,不可承诺“始终可用”。
密封流水线(高级/无 GHA):先 load_policy_contract 获取可用旋钮,inspect_repo 获取有证据的命令与路径前缀,不得臆造 pytest / npm test;需用户明确同意(计费运行时间);编写 argv 安全的 run(无 shell 操作符、sudo、curl、wget),使用目录镜像,尽量加 filter.paths。作业在 workspace 有权限且 Spot 环境可用时运行于 Spot,并发布 HeyEddi Runner: {job_id} 检查。创建/更新决策建议用 @heyeddi-ci-config。
证据规则(强制):作业可在有权限与 Spot 基座下运行;只有拿到 Check/Spot 证据(HeyEddi Runner: …、workflow Check 结论、Ops/日志)才算真正运行过。YAML lint 不等于执行。未知就说明未知并使用 @heyeddi-ci-fails。任何暗示执行的总结前运行:assert_runners_claims --check --agent-text "<your summary>"。
流程:load_policy_contract → inspect_repo → 选择 GHA 优先或密封流水线(同一 CI 绝不同时用)→ 接入 HEYEDDI_RUNS_ON 钩子和/或编写 pipeline: jobs → assert_runners_claims --check --agent-text "<your summary>"。
工具:load_policy_contract(可用旋钮/指南)、inspect_repo(语言与有证据命令)、assert_runners_claims(拦截无依据的执行声明)。
安全:YAML 中不得出现密钥;不得臆造测试命令;不得 auto_merge;未经授权不得合并;不得声称 AI+runner 时间线关联(即将推出)。