はんなりと、ゆるやかに

アジャイル、スクラムが好きなITエンジニアが日々から学んだことをアウトプット

特定ラベル付きのプルリクエストがマージされたときに GitHub Actions を実行

特定のラベルが付いたプルリクエストがマージされたときにGitHub Actions を実行する方法を調べたのでまとめます。

最終設定ファイル

name: RunLabel

on:
  pull_request:
    types: [closed]
jobs:
  RunLabel:
    runs-on: ubuntu-latest

    if: (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'runAction'))

    steps:
      - run: echo "Hello World!"

プルリクエストのマージをトリガーにする

プルリクエストがマージされたときを表すイベントはありません。closedgithub.event.pull_request.merged == trueを組み合わせてマージと判断します。

https://docs.github.com/ja/actions/using-workflows/events-that-trigger-workflows#running-your-workflow-when-a-pull-request-merges

特定のラベルのときに実行する

contains関数を使うと特定のラベルかどうか判断できます。最終設定ファイルの
contains(github.event.pull_request.labels.*.name, 'runAction') の部分です。この設定では、runActionというラベルの付いたプルリクエストのときにTrueが返ります。

https://docs.github.com/ja/enterprise-cloud@latest/actions/learn-github-actions/expressions#contains

まとめ

特定のラベルが付いたプルリクエストがマージされたときにGitHub Actions を実行する方法をまとめました。調査に使ったリポジトリはこちらです。
github.com