GitHub Actions で特定ブランチが削除された場合に実行する
GitHub Actions で特定ブランチが削除された場合にトリガーし実行する設定を試してみたのでまとめます。
結論
以下のような設定で実装しました。
- .github/workflows/delete.yml
1 | on: delete |
以下ポイントをまとめます。
on: delete と if でブランチ名指定
ブランチやタグが削除された際にトリガーされます。
on.delete
は 以下 on.push
の様に branches によるブランチのフィルターは現状利用できません。
1 | on: |
その為、 on.delete
で削除されたものが branch
であり、且つ、
その branch 名が tmp/
で始まる (ex. tmp/dummy) 場合のみ以下実行される設定としています。
1 | jobs: |
上記設定の為、毎回ブランチ削除時 (merge して削除等)に delete トリガーが実行されますが、
実質 1 秒程度で停止されました。
ちりも積もれば…となるのでこれを避けたい場合は GitHub の Webhook で Lambda の無料枠使えれば…
という感じで根本的な対策がないという印象です。
on.delete
に branches フィルタ希望です(切に)
デフォルトブランチに push して初めて on.delete は利用できる
on.push
は任意のブランチで初めて push した場合でもトリガーできます。
on.delete
はデフォルトブランチに push して初めて利用できます。
なかなかトリガーされないなーと焦ってたら公式ドキュメントにちゃんと載ってました。
https://docs.github.com/ja/actions/using-workflows/events-that-trigger-workflows#delete
ノート: このイベントは、ワークフローファイルがデフォルトブランチにある場合にのみワークフローの実行をトリガーします。
まとめ
on.delete
では branches フィルターが利用できないon.delete
はデフォルトブランチに利用するワークフローファイルがないとトリガーしない
以上
参考になれば幸いです。
GitHub Actions で特定ブランチが削除された場合に実行する
https://kenzo0107.github.io/2022/04/05/2022-04-06-github-actions-delete-event/