Skip to main content

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

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

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

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

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [アクション] をクリックします。

    "github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。

  3. 左サイドバーで、表示するワークフローをクリックします。

    [アクション] タブの左側のサイド バーのスクリーンショット。ワークフロー "CodeQL" が濃いオレンジ色の枠線で囲まれています。

  4. ワークフロー実行一覧から、キャンセルする queued または in progress 実行の名前をクリックします。

  5. ワークフローの右上にある Cancel workflow をクリックします。

    現在実行されているワークフローの概要のスクリーンショット。 [ワークフローのキャンセル] ボタンが濃いオレンジ色の枠線で囲まれています。

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

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

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