Skip to main content

ワークフローをキャンセルする

進行中のワークフロー実行をキャンセルできます。 ワークフロー実行をキャンセルすると、GitHub はそのワークフローの一部であるすべてのジョブとステップをキャンセルします。

これらのステップを実行するには、リポジトリへの書き込みアクセスが必要です。

ワークフローの実行をキャンセルする

  1. On GitHub.com, navigate to the main page of the repository. 1. リポジトリ名の下の [Actions] (アクション) をクリックします。 メインのリポジトリ ナビゲーション内の [Actions](アクション) タブ 1. 左サイドバーで、表示するワークフローをクリックします。 左サイドバーのワークフロー リスト
  2. ワークフロー実行一覧から、キャンセルする queued または in progress 実行の名前をクリックします。 ワークフロー実行の名前
  3. ワークフローの右上にある [Cancel workflow](ワークフローのキャンセル) をクリックします。 チェック スイートのキャンセル ボタン

ワークフロー実行をキャンセルするために GitHub が実行するステップ

ワークフローの実行をキャンセルする場合、ワークフローの実行に関連するリソースを使用する他のソフトウェアを実行している可能性があります。 ワークフロー実行に関連するリソースを解放するため、GitHub がワークフロー実行をキャンセルする際のステップを知っておくと役立つ場合があります。

  1. ワークフロー実行をキャンセルするために、サーバーは現在実行中のすべてのジョブに対して if 条件を再評価します。 条件が true に評価された場合、ジョブはキャンセルされません。 たとえば、if: always() は true に評価され、ジョブの実行は継続されます。 条件がない場合は条件 if: success() と同じなので、前のステップが正常に終了した場合にのみ実行されます。
  2. キャンセルする必要があるジョブについては、サーバーは、キャンセルする必要があるジョブを持つすべてのランナー マシンにキャンセル メッセージを送信します。
  3. 実行を継続するジョブの場合、サーバーは未完了のステップの if 条件を再評価します。 条件が true に評価された場合、ステップは引き続き実行されます。
  4. キャンセルする必要があるステップの場合、ランナー マシンはステップのエントリ プロセス (javascript アクションの場合は node、コンテナー アクションの場合は docker、ステップで run を使っている場合は bash/cmd/pwd) に SIGINT/Ctrl-C を送信します。 プロセスが 7500 ms 以内に終了しない場合、ランナーは SIGTERM/Ctrl-Break をプロセスに送信し、プロセスが終了するまで2500 ms 待ちます。 プロセスがそれでも実行中のままなら、ランナーはプロセスツリーを強制終了します。
  5. 5 分間のキャンセル タイムアウト期間が経過すると、サーバーは、実行を完了しないか、キャンセルプロセスを完了できなかったすべてのジョブとステップを強制的に終了します。