はじめに
こちらの記事は 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、楽しい!
引き続きいろいろ使っていこうと思います。