GitHub Actionsのworkflow_dispatchが表示されない場合はデフォルトブランチの設定を確認しよう

こんにちは。サービスグループの武田です。手動でGitHub Actionsのワークフローを実行できるworkflow_dispatchイベントは、デフォルトブランチで定義されているものしか実行できないので注意しましょう。
2021.08.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

結論としてはタイトルのとおりです。手動でGitHub Actionsのワークフローを実行できるworkflow_dispatchイベントを追加しようと、ブランチを切って設定をコミットしGitHubにpushしました。ところが、GitHubの画面上に表示されません。何が悪いのかと調べているうちに、公式ドキュメントに記載されている一文を見つけました。

GitHub で workflow_dispatch イベントをトリガーするには、ワークフローがデフォルトブランチに含まれている必要があります。 ワークフローの実行を手動でトリガーするには、次の手順に従います。 引用元:ワークフローの手動実行

そのため、新しくworkflow_dispatchイベントを追加して試すためには、一度デフォルトブランチを変更し終わったら戻すという手順が必要となります。

実際に確認してみる

リポジトリを作成して実際に確認してみましょう。GitHubで新規にリポジトリを作成します。今回はactions-testとしました。クローンしてコミットします。

$ git clone git@github.com:TAKEDA-Takashi/actions-test.git
$ cd actions-test

$ echo "# actions-test" >> README.md
$ git add README.md
$ git commit -m "first commit"
$ git branch -M main
$ git push -u origin main

続いてブランチを切ってactions用のファイルを追加します。

$ git switch -c feature/github-actions
$ mkdir -p .github/workflows
$ cat << EOS > .github/workflows/sample-workflow.yml
name: sample-workflow

on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello, world!
EOS

$ git add .
$ git commit -m "add sample-workflow.yml"
$ git push origin feature/github-actions

これで準備ができました。GitHubのActionsページを見てみます。

Get startedGet startedが表示され、先ほど追加されたactionsはありません。

続いてデフォルトブランチを切り替えてみます。Settings画面から切り替えられます。

切り替えられたら、再度Actionsページを見てみます。今度はありました!

せっかくなので実行してみましょう。

正常に実行できました。

まとめ

デフォルトブランチでしか実行できない仕様を把握しておらずハマりました。これからGitHub Actionsを利用しようとしている方はぜひ覚えておきましょう。