日本語

製品発表Linear

Linear、AI主導の開発によるボトルネックを解消するためCIパイプラインを刷新

この記事は翻訳です。 原文を読む

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% 節約されたと述べています。

出典

  1. AI coding has made CI a bottleneck, so 当ラボ reworked ours to keep up (Hacker News Frontpage, 2026-09-21)