0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHub Actions】同じワークフローが多重実行されたときに古い方を停止する

0
Posted at

同じワークフローが多重実行された場合、concurrencycancel-in-progressを設定することで、古いワークフローを自動的にキャンセルできます。

# 5分待機後に完了するAction
name: Stop multiple execution

on:
  push:
    branches: [ main ]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - name: Idle
        run: trap "exit 0" TERM; while true; do sleep 30; done

mainブランチへ push されると、このワークフローが実行され、5分間待機します。
待機中に再度mainへpushすると、新しいワークフローが起動し、古い実行中のワークフローは自動的にキャンセルされます。

concurrencyは、groupの値を基準にワークフローをグループ化し、同じグループ内で多重実行が発生した際の動作を制御します。
通常は、古い実行が終わるまで新しい実行は開始されませんが、cancel-in-progress: trueを指定すると、進行中の古い実行をキャンセルして新しい実行を優先する動作に変わります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?