HeadlinesBriefing favicon HeadlinesBriefing.com

AIコーディングがCIをボトルネックにする:Linearの解決策

Hacker News •
×

今年初め、私たちのCTOであるTuomasが私に課題を割り当てました:「CIコストが高い」。彼はCIの高速化も望んでいました。エージェントは出荷を加速しますが、変更の検証はそれに追いついていません。すべてのPRはCIを通過する必要があるため、開発が加速するにつれてCIがボトルネックとなり、インフラコストを押し上げ、開発者がフィードバックを待つ時間が長くなります。Linearでは、PR待ち時間とランナー時間を最適化しました。テストスイートがほぼ4倍になったにもかかわらず、PR待ち時間を6分超から5分強に短縮し、テストあたりのランナー時間を半減させました。

私たちは4つの方法でCIを改善しました:インフラとツールのアップグレード、他の作業をゲートするジョブの最適化、繰り返しのセットアップの削減、テスト実行の効率化です。Linearのコードベースは主にTypeScriptですが、多くの最適化は言語を問わず適用できます。

ワークロードをGitHub Actionsからより高速なCPUとストレージを備えたサードパーティランナーに移行したことで、ジョブ時間は平均34%短縮され、tscは52%削減されました。tsgoへの切り替えにより、tscチェックの週次中央値が73%削減されました。静的解析を使用するようにlintルールを書き直したことで、ESLintはTypeScriptを放棄し、API lint時間が68%、リポジトリ全体のlintが55%削減されました。Oxlintへの移行により、ランナー分がさらに削減されました。また、ゲートジョブを最適化し、fetch深度を制限することで、最も遅いゲートを94秒から20秒に短縮しました。