はじめに
こちらの記事は GitHub Actions Advent Calendar 2021の18日目の記事となります。他の皆様の投稿もぜひご覧ください!
今回は GitHub Actions のワークフローをトリガーするイベントの一つである、 workflow_dispatch についてまとめていきたいと思います。こちらのイベントは昨年の6月に使えるようになったイベントです。実際に使ってみるととても便利です。使えるようになってからだいぶ時間は経っていますが、使い方だったり、どういう時に使えるのか、といったことを紹介しようと思います。
workflow_dispatch イベントとは
- ワークフローを手動で実行できるイベント
- 実行ブランチを選択できるUIがデフォルトで追加される
- 実行時のパラメータは独自の項目についてもUIで指定できる
使い方
基本的な使い方
on 構文に workflow_dispatch を指定するだけです。
name: workflow_dispatch sample 1
on:
workflow_dispatch:
jobs:
printLog:
runs-on: ubuntu-latest
steps:
- name: print log
run: echo "Hello!"
デフォルトブランチにマージします。GitHub上で確認すると、Actions タブからワークフローにアクセスすることができ、手動実行できるようになっています。また、ワークフローを実行するブランチを選択できるようにもなっています。

Run workflow ボタンから実行してみます。

無事実行できました。
実行時にデータを付与したい
今度は、ブランチを選択できるだけではなく、挨拶する人の名前を実行時に指定できるようにします。workflow_dispatch に続けて inputs を定義します。
name: workflow_dispatch sample 2
on:
workflow_dispatch:
inputs:
name:
description: 'Name'
required: true
jobs:
printLog:
runs-on: ubuntu-latest
steps:
- name: print log
run: echo "Hello! ${{ github.event.inputs.name }}"
再びデフォルトブランチにマージし、GitHub上から確認してみます。

今度はブランチだけでなく、Nameも入力できるようになっています。Chihiroと入力し、実行してみます。

入力した名前がちゃんと参照されています。
注意
ワークフローを手動で実行するためには、ワークフロー(ymlファイル)がデフォルトブランチに含まれていないといけません。
To trigger the workflow_dispatch event, your workflow must be in the default branch.
使い所
特におすすめなのは、普段スケジュール実行(schedule)しているワークフローに対してworkflow_dispatchもつけておくことです。イベントは複数指定することができるため、scheduleとworkflow_dispatchの両方を指定することが可能です。
スケジュール実行しているワークフローが失敗した時に、対応をするために試行錯誤しながら何度かワークフローを実行することになると思います。スケジュール実行のままだとワークフローを任意のタイミングで実行できないので、今まではその都度pushなどに書き換えていました。
workflow_dispatchをつけてあるとイベント部分を書き換えなくて済みます。pushに書き換えて作業をしても良いのですが、あとで戻し忘れたりすることもあったりするのでworkflow_dispatchをつけておくに越したことはないかなという感じです。
大したことないことのように見えるかもですが、実際にworkflow_dispatchを指定してみるとめちゃくちゃ便利さを感じています。
最後に
GitHub Actions、楽しい!
引き続きいろいろ使っていこうと思います。