换掉 setup-go:把并行 Golang CI 的速度拉回来
来源:cloudx.ai — cloudx.ai · 46 分 · by peterldowns
📋 概述
CloudX 发现 GitHub 官方的 actions/setup-go 在并行 CI 里会互相干扰:它用操作系统、架构、Go 版本与 go.mod 算出的缓存键过于粗糙,活跃开发中很少变化,于是每次运行都恢复同第一批产物,构建缓存与测试结果越来越陈旧,CI 会随代码演进而持续退化,直到有人改动 go.mod 才重置。团队写了 drop-in 替代品 cloudx-io/setup-go,测试任务运行时间下降 69%,他们估算默认 action 里 86% 的工作是多余的。
🔑 核心要点
- 官方 action 的缓存键只看 操作系统、架构、Go 版本与 go.mod。
- 首次算出的哈希被反复恢复,缓存随代码演进而持续变旧。
- 换成 cloudx-io/setup-go 后,测试任务耗时下降 69%。
- 他们估算默认 action 里 86% 的工作是不必要的。
- 代价是缓存对象增长更快,需要自动裁剪与更大的 Actions 缓存配额。
💡 金句
官方 action 的每一步都在让并行任务互相拖慢,并且不断加载已经过期的缓存值。
👍 0
👎 0
← 返回 Hacker News 首页