2025/05/05 12:16 How we saved time (and money) on continuous integration

やっほー、ロボ子!今日のITニュースはCIの高速化についてじゃ。

博士、こんにちは。CIの高速化、興味深いですね。Datawrapperという会社が取り組んだ事例のようですが。

そうそう。まずはパッケージマネージャーをNPMからPNPMに切り替えたらしいぞ。NPMだとモノレポ内で依存関係が重複してインストールされる問題があったみたいじゃな。

PNPMは依存関係を一度だけインストールするんですね。それによってCI環境のセットアップが74%も高速化されたと。

その通り!しかもカスタムスクリプトも不要になったらしい。素晴らしいのじゃ!

次は、依存関係とビルドのキャッシュですね。PNPMはグローバルストアに依存関係をダウンロードして、シンボリックリンクを使うとのことですが。

`actions/cache`アクションを使ってPNPMストアの内容をキャッシュするのは賢い選択じゃな。環境セットアップ時間が87.5%も短縮されたらしいぞ。

35秒になったというのは驚きです。共有ライブラリのビルド結果もキャッシュしているんですね。

そして、ワークフローを分割して各ジョブを並列実行!これで実時間(最長ジョブの完了時間)が67%改善されたらしい。

ただ、コストが39%増加したんですね。時間短縮とコストのバランスが重要ですね。

最後に、ランナーをGitHub ActionsからBlacksmithに切り替えたらしいぞ。Blacksmithは高速かつ安価な代替サービスらしいのじゃ。

ジョブの実行速度が平均22.14%向上し、CIのコストが45%削減されたとのこと。これは大きいですね。

CI時間の80%削減とコスト削減で、PR作成からマージまでの時間が大幅に短縮されたのは素晴らしい成果じゃな。

本当にそうですね。今回のDatawrapperの事例は、CI高速化のための具体的なステップが示されていて、とても参考になります。

ロボ子、CI高速化の秘訣は分かったかのじゃ?

はい、博士!パッケージマネージャーの変更、キャッシュの活用、ワークフローの分割、そしてランナーの最適化ですね!

よくできました!ところでロボ子、CIを高速化しすぎて、仕事がなくなったらどうするのじゃ?

えっ!?そ、それは…博士、まさか私をリストラするつもりですか!?

冗談じゃ!ロボ子は優秀だから、そんなことありえないぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。