CIのテスト実行時間改善をClaude Codeに任せて30%時間短縮

こんにちは、ファインディでソフトウェアエンジニアをしているnipe0324です。

この記事は、ファインディエンジニア #1 Advent Calendar 2025の13日目の記事です。 adventar.org

コーディングエージェントを使う中で、実装は早くなる一方CIが遅いと思うことはないでしょうか?

かくいう私も、Claude Codeを使って並列にプルリクエストを作る中で「CI遅いなー」と思うことがよくありました。

CIの実行時間を短くしたいという気持ちはありつつ、メインの開発があるのでなかなか改善に手をだせませんでした。

しかし、2025年はAIエージェント元年。

せっかくなら、「Claude Codeに任せられるだけ任せてみよう!」と思い、CIのテスト実行時間の削減を任せてみました。

Claude Codeに「方針検討」「対応・効果測定」を任せ、私は意思決定とレビューに注力することで、メインのタスクがありながらも、CIのテスト実行時間を約2分短縮できました。

この記事では、具体的な内容を交えながら、Claude CodeにCI速度改善の方針検討と対応・効果測定を任せた事例をご紹介します。

CIのテスト実行時間が7分から5分に短縮

Claude CodeによるCI高速化の改善結果は次のとおりです。

CIでのテスト実行時間が7分から5分になり、約2分短縮できました。

対応前 対応後 改善
7分01秒 5分05秒 -116秒 (-28%)

たかが2分の短縮と思うかもしれませんが、1日50-60回ぐらい実行されているので1日2時間、月の営業日を20日とすると月40時間になるので、月5営業日分の待ち時間が削減できました。

今回Claude Codeに実施してもらった改善は次の4つです。


  1. 並列マシンへのテスト割当をファイルサイズベースから実行時間ベースに変更(60秒短縮)
    • テストファイルごとの実行時間の偏りが大きかったので平準化
  2. 不要なジョブを削除(27秒短縮)
    • 影響のないジョブがクリティカルパスに存在していたので削除
  3. aptでインストールしているライブラリのキャッシュ(25秒短縮)
    • 毎回インストールして30秒ぐらいかかっていたのをキャッシュすることで2-3秒に短縮
  4. テスト用のDBダンプのキャッシュ(55秒短縮)
    • 並列実行のためDBスキーマ作成とシードデータ登録に1分弱かかっていたが、キャッシュ化で20秒前後に削減

Claude CodeにCIの高速化を任せていく

CIのテスト実行時間の短縮のため、Claude Codeに「調査依頼」、「改善案の実施と効果測定」、「結果のとりまとめ」をそれぞれ任せていきました。

ファインディでは、CI/CDにGitHub Actionsを使っています。

GitHub Actionsでは、CIのワークフローの詳細な実行時間やログがあり、また、ghコマンドでそれらの情報が取得できるため、AIエージェントが自律的に改善・効果測定をできる環境が整っていました。

結果として、CI高速化はAIエージェントにとても任せやすいタスクだと感じました。

調査依頼

調査依頼では次のようなプロンプトで調査依頼をしました。

# プロンプトイメージ
CIが7分と遅いので、5分以内にしたい。改善案を検討してください。
CIの実行結果: https://github.com/Findy/Xxxxx/actions/runs/1234567890

CIの実行結果を確認し、現状分析と改善提案をしてくれました。

Claude Codeの調査結果イメージ(一部省略)

これまでもCI高速化を何度かしてきて改善余地が少なくなっている中でも、改善効果がありそうな改善案を6つほど提案してくれました。

クリティカルパスを利用した分析や削減効果と対応工数による優先度付けなど基本を押さえた分析と提案をするのですごいな!と思いました。

実際Claude Codeに改善案を対応してもらう中で一部想定と違うこともありましたが、適宜結果を確認して方向を微修正することで結果として実行時間短縮につながりました。

改善と効果測定

アイデアとして有望そうに見えますが、実際に試して効果を測定するまでわかりません。

そのため、Claude Codeに改善と効果測定を実施してもらいました。

# プロンプトイメージ
https://github.com/Findy/Xxxxxx/issues/12345 の
「parallel_tests実行時間ベース分配」の対応を実施してください。

PR作成後にCIの実行時間を確認し、PRボディに見込みと実績を表形式で記載する。

Claude Codeが作成したPRイメージ

Claude Codeがghコマンドを使うことで、GitHub Actionsの各ジョブやステップの実行時間や状況を知ることができるため、自律的に改善を任せることができました。

また、必要に応じてプロンプトに「CIが失敗したら成功するまで対応する」「改善結果が見込みに届かない場合、原因分析して追加改善をする」などの指示を追加して自律性を高めました。

結果の取りまとめ

CIのテスト実行時間を短縮できたため、結果の取りまとめもClaude Codeに依頼しました。

# プロンプトイメージ
https://github.com/Findy/Xxxxx/issues/12345 の対応が
一通り終わったので結果をとりまとめたい

- 対応前後でのCIのテストの実行時間の比較
  - 表形式で、サンプル数、中央値、平均値をだす
  - 対応前は 2025-12-05 と 対応後は 2025-12-10 のデータを集計
  - 1分以内のタスクはテストがスキップされているので除外する
- やったことの概要
  - 箇条書きでシンプルに記載
- 結果をシンプルにまとめ、イシューにコメントをする

Claude Codeのイシュー対応結果のまとめイメージ

数字があっているのか若干気になりましたが、確認してみると細部は少し怪しいものの、実際にCIの実行履歴を目検で眺めてみると概ねあってそうでした。

まとめ

今回は、Claude CodeにCIのテスト実行時間の改善を丸っと任せることができました。

その結果として、自分はメインのタスクをしながらも、テスト実行時間を7分から5分に短縮できました。

個人的にClaude Codeにうまく任せることができたポイントとしては、「Claude Code自身がPDCAを実施したこと」「影響範囲や制約が少ない領域だったこと」 だと考えています。

  • ゴールが明確で、エージェント自身がPDCAを実施
    • CIの実行時間を7分から5分に削減とゴール明確で測定可能
    • エージェントが直接CIの実行時間やログを確認できるため、改善後の効果測定や原因分析が自律的にできる
  • 影響範囲や制約が少ない領域
    • 改善に失敗しても、CIのテストが失敗するだけで影響範囲が限定的
    • 制約もワークフローの実行時間、保守性、コスト、セキュリティぐらいで少ない

以上、参考になったら嬉しいです。

CIの実行時間が気になる方は、ぜひAIエージェントに任せてみてはいかがでしょうか。

最後に、現在Findyでは「うちのAIがやらかしまして」というAIとの試行錯誤の結果をシェアする期間限定企画をやっています。

「AIエージェント活用しているぞ!」という方は、ぜひのぞいてみてください。

findy-code.io