ci: reduce pull request runner usage - #697
Conversation
|
PR Title: ci: reduce pull request runner usage Commit: 本次变更包含两个文件,目标是让 Darwin 构建在 PR 上只跑 amd64:\n\n1. Prompt To Fix All With AI |
|
PR Title: ci: reduce pull request runner usage Commit: 本次改动仅涉及 .github/workflows/images.yml 的 pull_request 触发路径过滤器(+15/-3)。 改动内容:把原先分散的 cmd/、pkg/ 归并重整,新增 buf.yaml、buf.gen.yaml、internal/、assets/;将原先宽泛的 scripts/** 收窄为 4 个具体脚本(Dockerfile 实际 COPY 的 build-agent-compose-binary.sh、with-go-toolchain.sh,以及 guest 构建相关的 build-agent-compose.sh、build-agent-compose-guest.sh);并在列表末尾追加 4 条否定模式(!/*_test.go、!/.test.ts、!**/.test.js、!/tests/),意图让纯测试改动不再触发镜像构建。 评估:否定模式均带引号且在正向模式之后,符合 GitHub Actions「最后一个匹配的模式生效」语义,能正确排除测试文件;Dockerfile 的全部构建输入(cmd/、internal/、pkg/、assets/、proto/、buf.*、go.mod/go.sum 及两个被 COPY 的脚本)也都被覆盖,新增 internal/**、buf.yaml、buf.gen.yaml 属于对既有遗漏的修复。 唯一实质问题是把 scripts/** 收窄为 4 个脚本后,本工作流自身执行/依赖的多个脚本(scripts/tests/test-image-ci-contract.sh、verify-agent-compose-image.sh、test-image-docker-e2e.sh、verify-image-manifest.sh、build-installer-assets.sh)不再纳入触发路径,PR 阶段形成 CI 校验盲区,已作为 medium 级发现提交。 Prompt To Fix All With AI |
|
PR Title: ci: reduce pull request runner usage Commit: 本次变更范围很小(2 个文件,+7/-0),且经逐条核验后未发现需要修复的可执行问题,属于对历史 finding d78387e5 的补全。
非阻塞观察(未作为 finding 提交):paths 白名单仍是手工维护的显式列表,而 test-image-ci-contract.sh 目前不会校验"工作流中引用的每个 scripts/* 是否都登记在 paths 中",同类漏配存在再次静默发生的可能;如后续加一条自检断言即可一劳永逸。整体评估:变更方向正确、实现无误,可以合入。 |
Problem
Every pull request ran the full Darwin binary matrix plus a native macOS smoke test. A recent PR spent about 4 runner minutes on those Darwin jobs, including a 3 minute macOS runner job.
Solution
mainand version tags.This preserves the complete platform matrix after merge while reducing pull request runner usage.
Validation
./scripts/tests/test-binary-ci-contract.shgit diff --check