これらのステップを実行するには、リポジトリへの書き込みアクセスが必要です。
ワークフローの実行をキャンセルする
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [アクション] をクリックします。
-
左サイドバーで、表示するワークフローをクリックします。
-
ワークフロー実行一覧から、キャンセルする
queued
またはin progress
実行の名前をクリックします。 -
ワークフローの右上にある Cancel workflow をクリックします。
ワークフロー実行をキャンセルするために GitHub が実行するステップ
ワークフローの実行をキャンセルする場合、ワークフローの実行に関連するリソースを使用する他のソフトウェアを実行している可能性があります。 ワークフロー実行に関連するリソースを解放するため、GitHub がワークフロー実行をキャンセルする際のステップを知っておくと役立つ場合があります。
- ワークフロー実行をキャンセルするために、サーバーは現在実行中のすべてのジョブに対して
if
条件を再評価します。 条件がtrue
に評価された場合、ジョブはキャンセルされません。 たとえば、if: always()
は true に評価され、ジョブの実行は継続されます。 条件がない場合は条件if: success()
と同じなので、前のステップが正常に終了した場合にのみ実行されます。 - キャンセルする必要があるジョブについては、サーバーは、キャンセルする必要があるジョブを持つすべてのランナー マシンにキャンセル メッセージを送信します。
- 実行を継続するジョブの場合、サーバーは未完了のステップの
if
条件を再評価します。 条件がtrue
に評価された場合、ステップは引き続き実行されます。cancelled
式を使用して、cancelled()
のステータス チェックを適用できます。 詳細については、「ワークフローとアクションで式を評価する」を参照してください。 - キャンセルする必要があるステップの場合、ランナー マシンはステップのエントリ プロセス (javascript アクションの場合は
node
、コンテナー アクションの場合はdocker
、ステップでrun
を使っている場合はbash/cmd/pwd
) にSIGINT/Ctrl-C
を送信します。 プロセスが 7500 ms 以内に終了しない場合、ランナーはSIGTERM/Ctrl-Break
をプロセスに送信し、プロセスが終了するまで2500 ms 待ちます。 プロセスがそれでも実行中のままなら、ランナーはプロセスツリーを強制終了します。 - 5 分間のキャンセル タイムアウト期間が経過すると、サーバーは、実行を完了しないか、キャンセルプロセスを完了できなかったすべてのジョブとステップを強制的に終了します。