已关闭
ci: main 分支无 push CI 且 preflight 不跑 go test——Go 单测证据仅 PR 时点 #618
aflyingto创建于 15 天前关闭于 7 小时前
aflyingto
8 小时前 评论:
8 小时前 评论:
验证记录
- 当前版本或分支: main @ f4025cf
- 验证时间: 2026-10-20
- 复现命令:
sed -n '1,8p' .gitcode/workflows/ci.yml .github/workflows/ci.yml、grep -n "go test" .github/workflows/release.yml - 实际结果: 双端 ci.yml 均仅
on: pull_request: branches: [main]+workflow_dispatch,无 push 触发;release.yml preflight 含版本同步校验、goreleaser snapshot 与打包检查,无go test——issue 主张全部属实 - 预期结果: main 合并/直推后有 CI 运行记录;Go 单测证据不再仅限 PR 时点
- 时间线检查: 2026-10-19/20 的一手证据使缺口具象化——d1714f0(!592 自身 head)的 GitCode CI run 419 为 FAILED 仍被合入 main,其引入的 factory 测试缺陷随后令所有 PR 的 CI 三平台全挂(run 418/420 等),直至 62d74eb 才解阻;期间无任何 main 时点的自动化证据能在此刻暴露问题。若有 main push CI,d1714f0 落 main 当刻即红
- 结论: 继续修复(双端 ci.yml 增加
push: branches: [main]触发 + release preflight 补go test ./...,按 issue"或两者"取两者:push CI 满足两条验收标准,preflight 补测封住"main CI 缺失/变红时仍可发版"的残余路径)


aflyingto
7 小时前 评论:
7 小时前 评论:
开发进度
- 当前状态: ready-for-review(PR !595 已完成自检、四角色独立评审三轮全部 approved、双端 CI 全绿,等待人工最终确认与合并;合并后执行首跑核验清单并回填本 issue)
- 根因: main 分支无 push CI、release preflight 不跑 go test——PR 时点是唯一自动化证据,d1714f0 带红 CI(run 419 FAILED)合入后无任何 main 时点信号,直至阻断所有 PR CI 才暴露(详见验证记录)
- 主要修改: 双端 ci.yml 增加 on.push.branches [main];release.yml preflight 增加 go test ./...(版本校验后、打包前);五处规范/入口文档同步 + 评审轮补契约钉(触发面双端 parity + preflight 步骤)与四处文档残留修复
- 影响范围: CI 触发面与发布 preflight;Job 定义、权限、依赖关系、质量门禁映射均不变
- 单元测试:
go test ./...163 包全部通过(含新增契约测试:validateTriggers 双端、3 个 mutation 负例、preflight 钉扎) - 构建: 三份 YAML 解析验证通过
- 实际命令验证: CI 配置变更的真实命令验证即 CI 运行——基线 a2b459d 与终态 c090bfc 双端全绿(GitCode 五 job / GitHub 九 job);push 事件证据按验收标准合并后产生
- 安全影响: 权限与 secret 边界零扩张(独立安全评审源码级核实);push 触发严格限 main 无滥用面
- 文档同步: ci-workflows(必须清单/层级图/触发配置/工具链表/§3.2 查询示例/§5.4 契约/§6)、ai-local-development-workflow、code-quality-gates、release-process、AGENTS §3.6、LOOP-GOAL-GUIDE、.loop lessons——全仓残留扫描经文档评审复核闭环
- 风险或未覆盖项: risk/high,合并前需人工最终确认;GitCode 平台 push 触发实际支持与 ATOMGIT_RUN_ID 在 push 运行的注入以合并后首跑为准(首跑核验清单:触发确认 / ATOMGIT_RUN_ID / 双事件重复运行噪音,缺失时回退仅需删 3 行);runner 用量上升为声明的已知代价
- 关联 PR: !595


aflyingto
7 小时前 评论:
7 小时前 评论:
验收回填:main push CI 首跑记录(issue 验收标准达成)
PR !595 合并提交 76bc48d 落 main 后,push 触发的 CI 在双端自动运行并全绿——main 合并/直推后有 CI 运行记录、Go 单测证据不再仅限 PR 时点 两条验收标准均达成:
- GitCode 原生 CI(run
e0db65914cdd4c81ae1df9efd870b819,event=Push,head76bc48d):Lint / Secret Scan / Test / Build / Package 五个 Job 全部 COMPLETED。Test Job 通过即证明制品命名步骤的${ATOMGIT_RUN_ID:?}在 push 运行上下文正常注入(评审预测点 b 未发生,无需 fallback) - GitHub 镜像 CI(run
39385819655,event=push,head76bc48dc,镜像同步后自动触发):Test(ubuntu/macos/windows)+ Build(三平台)+ Lint + Secret Scan + Docker 共九个 Job 全部 success - 重复运行噪音评估(评审预测点 c):合并恰好产生每平台一次 push 运行,无失控扇出;runner 用量上升为声明的已知代价
- 查询命令(新增的验收口径示例):
gc actions run list -R atomgit-cli/cli --branch main --event Push --json、gh run list --workflow=ci.yml --branch main
对照事故基线:改动前 d1714f0(!592,run 419 FAILED)带红 CI 合入 main 无任何 main 时点信号;本次机制下同类事件将在合入瞬间被 push CI 暴露,且契约测试(validateTriggers 双端 parity)保证触发器本身不可被静默移除。


背景
on: pull_request),main 分支无 push CI;且 release preflight 不跑go test ./...——Go 单测证据仅存在于 PR 时点改动建议
push: branches: [main]触发,或 release preflight 增加go test ./...步骤(或两者,评审定夺)验收标准
影响范围
.github/workflows/ci.yml、.gitcode/workflows/ci.yml、(可选).github/workflows/release.ymlpreflight