HeadlinesBriefing favicon HeadlinesBriefing.com

AI 编程让 CI 成为瓶颈:Linear 的解决方案

Hacker News •
×

今年早些时候,我们的 CTO Tuomas 给我分配了一个问题:“CI 成本很高。”他还希望 CI 更快。智能体加速了交付,但验证变更的速度并未跟上。每个 PR 都必须通过 CI,因此随着开发加速,CI 成为瓶颈,推高了基础设施成本,并让开发者等待反馈的时间更长。在 Linear,我们针对 PR 等待时间和运行器时间进行了优化。尽管测试套件几乎翻了两番,我们将 PR 等待时间从超过 6 分钟缩短至略超 5 分钟,并将每个测试的运行器时间减半。

我们从四个方面改进了 CI:升级基础设施和工具、优化门控其他工作的任务、减少重复设置,以及让测试执行更高效。Linear 的代码库主要是 TypeScript,但许多优化适用于各种语言。

将工作负载从 GitHub Actions 迁移到具有更快 CPU 和存储的第三方运行器,使任务时间平均缩短了 34%,其中 tsc 下降了 52%。切换到 tsgo 使 tsc 检查的每周中位数下降了 73%。重写 lint 规则以使用静态分析,让 ESLint 放弃 TypeScript,将 API lint 时间减少了 68%,全仓库 lint 减少了 55%。迁移到 Oxlint 进一步削减了运行器分钟数。我们还优化了门控任务,限制 fetch 深度,将最慢的门控从 94 秒减少到 20 秒。