ドキュメント
circleci.com
Start Building for Free

ジョブとワークフローのスキップとキャンセル

1 week ago1 min read
Cloud
Server v3.x
Server v2.x
On This Page

このドキュメントでは、パイプラインをトリガーする際に処理をスキップまたはキャンセルする方法を説明します。 これには複数の方法があります。 パイプラインのジョブは、コミット時にスキップしたり、ワークフロー自動キャンセル機能を使ってワークフローをキャンセルすることができます。 それぞれの方法を下記でご紹介します。

パイプラインのジョブのスキップ

デフォルトでは、プロジェクトに変更をプッシュすると CircleCI は常に自動的にパイプラインをトリガーします。 この動作を無効にするには、コミットの本文またはタイトルの最初の250文字の中に、 [ci skip] タグまたは [skip ci] タグを追加します。 これにより、マークされたコミットだけでなく、そのプッシュに含まれる他のすべてのコミットもスキップされます。

CircleCI Server v2.x CircleCI Server v2.x をご使用であれば、パイプラインの機能を使っていなくても、下記で説明するワークフローをスキップする方法を使用できます。

スコープ

ci skip 機能のスコープについては以下の点にご注意ください。

  • これらのコミットにパイプラインとワークフローは存在しますが、ジョブは実行されません。
  • 一度に複数のコミットをプッシュする場合、1 つの [ci skip] または [skip ci]すべてのコミットのビルドがスキップされます。
  • この機能はフォーク PR ではサポートされていません。 [ci skip] のメッセージを含むコミットをプッシュしても、スケジュールされたワークフローは実行されます。 設定ファイルを変更することで、現在のスケジュールをアップグレードすることができます。

コミットのタイトルの例

$ git log origin/master..HEAD

commit 63ce74221ff899955dd6258020d6cb9accede893
Author: Daniel Woelfel
Date:   Wed Jan 23 16:48:25 2017 -0800

    fix misspelling [ci skip]

このコミットはタイトルに [ci skip] が含まれているため、VCS にプッシュされても CircleCI でビルドされません。

コミットの説明の例

$ git log origin/master..HEAD

commit 99b4ce4d59e79cb379987b39c65f7113631f0635
Merge: 16ba8ca adc6571
Author: Daniel Woelfel
Date:   Tue Apr 25 15:56:42 2016 -0800

    A large feature with squashed commits

    [skip ci] Fix bug in feature
    Refactor feature code
    First attempt at feature

このコミットは説明に [ci skip] または[skip ci]が含まれているため、VCS にプッシュされても CircleCI 上でビルドされません。

自動キャンセル

ブランチに変更を頻繁にプッシュすると、キューに入る可能性が高まります。 これにより、古いパイプラインのビルドが終わるまで、最新バージョンでのビルドを実行できない場合があります。

時間を節約するために、同じブランチで新しいパイプラインがトリガーされた場合は完了していなワークフローを自動的にキャンセルするように CircleCI を設定することができます。

スコープ

自動キャンセル機能のご利用については以下の点にご注意ください。

  • プロジェクトのデフォルトのブランチ (通常は main) では、ビルドの自動キャンセルは行われません。

GitHub または API へのプッシュによってトリガーされたパイプラインの自動キャンセルを有効にする手順

注意: 非デフォルトのブランチで自動デプロイ ジョブを設定しているなどの場合、自動キャンセル機能の有効化による影響を慎重に検討する必要があります。

  1. CircleCI アプリケーションで、[Project Setting (プロジェクトの設定)] に移動します。

  2. [Advanced Settings (詳細設定)] をクリックします。

  3. [Auto-cancel redundant builds (冗長ビルドの自動キャンセル)] で、トグルスイッチを On の位置に切り替えて、機能を有効にします。

[Advanced Settings (詳細設定)] で自動キャンセルが有効になっているプロジェクトでは、非デフォルトのブランチで新しいビルドがトリガーされると、同じブランチ上のパイプラインやワークフローがキャンセルされます。ただし、以下の例外があります。

  • スケジュールされたワークフローおよび再実行されたワークフローはキャンセルされません。

CircleCI Server での自動キャンセル

CircleCI Server では現在パイプライン機能を使用していません。そのためビルドの自動キャンセル機能は 、API によりトリガーされたビルド、またはワークフローを使用しないプロジェクトの GitHub へのプッシュによりトリガーされたビルドにのみ有効です。

CircleCI Server での自動キャンセルを有効にする手順

  1. CircleCI アプリケーションで、プロジェクトの横にある歯車のアイコンをクリックして、プロジェクトの設定に移動します。

  2. [Build Settings (ビルドの設定)] セクションで、[Advanced Settings (詳細設定)] をクリックします。

  3. [Auto-cancel redundant builds (冗長ビルドの自動キャンセル)] セクションで [On (オン)] ボタンをクリックします。


ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。