AIコーディングエージェントはコード提供の速度を大幅に向上させましたが、Linearにおいては継続的インテグレーション(CI)プロセスがボトルネックとなっていました。開発が加速するにつれ、CIによる変更の検証がインフラコストを押し上げ、開発者とエージェントの両方にとって待ち時間の増加を招いていました。これに対応して、LinearはCIシステムを刷新し、プルリクエストの待ち時間を 6 分以上からわずか 5 分強へと短縮することに成功し、テスト1回あたりのランナー時間も約半分に削減しました。
この最適化は、インフラ、ツールチェーン、リンティング、およびシステム全体のワークフローという4つの主要領域にわたる改善を含んでいます。LinearはワークロードをGitHub Actionsから、より優れたCPU、ストレージ、キャッシュ機能を備えたサードパーティのランナーへと移行させ、その結果、ジョブの平均速度が 34% 向上しました。また、ネイティブのTypeScriptコンパイラである tsgo へ切り替えることでツールチェーンを近代化し、週間のメディアン tsc チェック時間を 73% 短縮しました。
リンティングを最適化するために、Linearはカスタムルールを書き換え、TypeScriptの型情報に依存するのではなく、抽象構文木(AST)を介した静的解析を使用するようにしました。この変更により、ESLintが完全な型グラフなしで機能できるようになり、APIリンティング時間は 68%、リポジトリ全体のリンティング時間は 55% 短縮されました。
システムレベルでは、Linearは大規模なテストスイートの前に実行される小さなタスクである「ゲート」ジョブを最適化しました。fetch depth(取得深度)を制限し、sparse checkout(疎なチェックアウト)やblobless checkoutを使用することで、チェックアウト時間を大幅に短縮しました。さらに、セットアップタスクを統合し、構築済みのCIベースイメージを使用することで、シャードごとのセットアップ時間を約 44% 短縮しました。
さらなるパフォーマンス向上のため、LinearはVitestを活用してテストスイートの並列化をより積極的に行い、テストシャードの数を4つから8つに増やしました。これに大きく貢献したのは、Vitestに導入されたオプトイン設定で、安全なファイル間でモジュールレジストリを共有できるようにし、テストファイルごとにモジュールグラフを再構築するオーバーヘッドを回避できる機能です。Linearは、この最適化だけで月間のランナーコストが約 17% 節約されたと述べています。
出典
- AI coding has made CI a bottleneck, so 当ラボ reworked ours to keep up (Hacker News Frontpage, 2026-09-21)