LoginSignup
0
0

More than 3 years have passed since last update.

GitHub でブランチの削除をトリガーに何かを実行する

Posted at

やりたいこと

  • GitHub で、ブランチの削除をトリガーに特定の処理を走らせたいと思いました。

実現方法

  • GitHub Actions で、ブランチの削除をフックできるらしいので GitHub Actions でやってみました。

GitHub Actions の設定

以下のような設定をしてみました。

github/workflows/main.yml
name: do something when branch is deleted

on:
  delete

jobs:
  delete_hook:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: |
          echo Run only when branch "test/*" is deleted
        if: startsWith(github.event.ref, 'test/')
  • delete をフックに GitHub Action を実行する。
    • on に delete を指定する。
  • また、自分の場合は特定のブランチの削除で処理を実行したかった。
    • ただ、delete に branches のフィルタが記述できなさそうだった。
    • ワークアラウンドとして、実行したい処理 (run) を条件付きで実行するようにした。
    • delete はコンテキストが master ブランチになるようなので、github.event.ref で削除されたブランチ名を取得した
    • ↑で取得したブランチ名を if の中で contains とか startsWith を利用して、ブランチのフィルタをかけた。

問題点

  • どのブランチの delete でもジョブ自体は起動してしまうので、 GitHub Actions の時間を無駄に使ってしまうのが今ひとつだと思っています。
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