プルリクエストがマージされたときにGitHubActionsのワークフローが実行されるようにする
穴があった設定
個人開発において、プルリクエストがマージされたときに実行されるGitHubActionsのワークフローを以下のように設定していた。
name: Some Build
on:
  pull_request:
    branches:
      - main
    types:
      - closed
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
しかし、この設定には抜け穴があり、プルリクエストをマージせずにクローズしたときでも実行されてしまった。この設定を修正することで、プルリクエストがマージされたときにだけワークフローが実行されるようにしたい。
修正後の設定
GitHubActionsにはプルリクエスト関連のトリガーでmergedのようなイベントは用意されていない。
そのため、以下のようにif条件を使うことでマージ時にのみジョブが実行されるようにする。
name: Some Build
on:
  pull_request:
    branches:
      - main
    types:
      - closed
jobs:
  build:
    if: github.event.pull_request.merged == true # これ
    runs-on: ubuntu-latest
    steps:
これでプルリクエストがマージされたときにだけワークフローが実行されるようになった。