CircleCI のAuto-cancel redundant workflows 機能で、最新のpushでのみCI / CDを実行させる
Article actions
この記事では、CircleCI のCI / CDパイプラインへ連続してpushを行った際に、古いcommitのパイプライン実行を中断させ、クレジット消費量を削減する方法について紹介します。この方法を採用するメリットとデメリットなどもまとめますので、コスト削減とフィードバックループの精度などのトレードオフについてもぜひ考えてみてください。
pushを連続して行うケース
Gitベースの開発フローとGitHub Actions / CircleCIなどを利用したCI / CDパイプラインがある開発現場では、時に「さっきpushしたけど、これも追加しておかないと・・・」のような流れで連続してcommit / pushを行うことがあります。
そうなると小さな変更を1つ追加しただけのケースでも、CIパイプラインが2度実行され、プランや.circleci/config.ymlの設定によっては通常より長い待機時間が発生するなどのリスクが生まれます。

最近では、AIコーディングやレビューツール・サービスが発展したことで、PRの中で「Commit suggestion」による改善提案を直接コミットするケースなどもあります。こちらはsuggestionを1つずつcommitすることになるため、場合によってはレビューエージェントの提案を全て受け入れた結果、3つも4つもコミットが新しく発生することも珍しくありません。そうなると、GitHub ActionsやCircleCIのパイプライン実行もその数だけ増えることになり、実行時間やクレジットの消費が激しくなります。

Auto-cancel redundant workflows で最新のcommitのみパイプラインを実行する
CircleCI には、この問題を解決するための機能が用意されています。それが Auto-cancel redundant workflows です。

この機能を有効にすると、同じブランチに新しい push が行われた際、そのブランチで実行中または待機中の古いパイプラインが自動的にキャンセルされます。最新のコードに対してのみパイプラインが実行されるため、クレジット消費量を抑えることができます。
Auto-cancel redundant workflowsの設定方法
設定は非常にシンプルで、プロジェクトの設定画面から数クリックで有効化できます。
まず CircleCI のダッシュボードから対象のプロジェクトを選択し、Project Settings を開いてください。左側のメニューから Advanced を選択すると、Advanced Settings ページが表示されます。

ページ内に Auto-cancel redundant workflows という項目があります。

この項目の右側にあるトグルスイッチをオンにすれば、機能が有効化されます。
Auto-cancel redundant workflowsの制限事項
この機能は非常に便利ですが、いくつか理解しておくべき制限事項があります。
デフォルトブランチには適用されない
最も重要な点として、デフォルトブランチ(main や master など)には自動キャンセルが適用されません。これはCircleCI の公式ドキュメントにも with the exception of your default branch と明記されています。「自信を持ってコードをリリースする」「どのコミットで問題が起きたかを迅速に特定し、改善しやすくする」といった CI / CDの目的を考えると、顧客へ提供するコードベースそのものとなるデフォルトブランチについては、確実にパイプラインを実行する必要があるということかもしれません。
スケジュール実行や手動再実行なども対象外
またScheduled workflows と Re-run workflows は自動キャンセルの対象外です。スケジュール実行された workflow は、新しい push があっても引き続き実行されます。Fork PR からトリガーされたパイプラインにも対応していません。オープンソースプロジェクトで外部からの PR を受け付けている場合、この点に注意してください。

「特定のケースでのみ自動キャンセルする」などの条件付けはできない
2025/12時点では、この機能は「オンかオフか」の設定のみできます。そのため、「この条件では自動キャンセルさせたくない」のような個別ルールの設定には対応していません。機能要望は出ていますが、もしこのケースに該当する場合は、上記の除外ルールを活用するなどの代替案を検討しましょう。
参考:Skip CI and cancel workflows – CircleCI Documentation
Auto-cancel redundant workflows の向き不向き
CircleCI の Auto-cancel redundant workflows を使うことで、CI / CDパイプラインが短時間に複数回実行されるケースを回避できます。これによってCircleCIのクレジット消費や、並列実行待ちが発生した場合の待機時間増加などを抑止することができます。
しかし一方でパイプラインのジョブが失敗した場合に、「そのパイプラインをトリガーしたコミットが原因なのか、Auto-cancelされたコミットが原因なのか」などの切り分けが難しくなるデメリットも発生します。そのため、「コスト削減や実行頻度の効率化」をとるか、それとも「こまめにCIを実行することで、ミスに素早く気づけるフィードバックサイクルを回す」のどちらをとるかをチームや開発生産性などの視点から検討する必要があります。
個人開発や少人数での開発などであれば、調査コストもあまり高くないとは思いますので、この機能をオンにしてfreeプランをお得に使う方向を模索するのがいいかもしれません。
CircleCI のクレジット管理には、この機能以外にも、パイプラインの最適化、テストの並列実行、キャッシュの活用など、様々なアプローチがあります。Auto-cancel redundant workflows は、その中でも最も簡単に導入できる施策の一つと言えるでしょう。

Hidetaka Okamoto
Business Development
Related Articles
MCPを利用して、CIエラーの調査・修正もCursor IDEだけで実現する
この記事は、「Model Context Protocol(MCP) Advent Calendar 2025 12日目」の記事です。 チーム開発で CircleCI のパイプラインがエラーを起こすと、原因を調べるために […]
CircleCI の料金体系をざっくり理解する
CircleCIの利用計画を立てる中で、どのように料金が発生するかを理解する必要があります。ここで少し導入検討フェーズのハードルになりやすいのが、クレジット制という少し特殊な料金体系を取っていることです。 この記事では、 […]
AIコーディングエディタと CircleCI MCPを利用して、実装からCIまでを自動化する
Cursor / Devin / Claude Code / Kiro など、さまざまなAIコーディングツールが2025年に登場・成長してきました。しかしその一方で生成AIが生み出した「在庫」をどのように処理するのかが、 […]
CircleCIでE2Eテストを実行するときは、使用ツールに応じて Docker イメージを変更しよう
CircleCIは、テストやビルドを効率的に実施し、設定コードを定義できるようにするために幾つかのDocker ImageやOrbを提供しています。ただ、調べてみると、E2Eテストツールによってどのイメージを使うのが最適 […]