TL;DR
github.event_name == 'workflow_dispatch'
workflow_dispatchとは?
GitHub Actionsのworkflow_dispatchを使うと、定義したWorkflowを手動で実行できます。
詳細は公式ドキュメントを読んでみてください。
GitHub Actions workflowがworkflow_disptchによって実行されたかどうかを判定する
あんまりない例かもしれませんが、 Workflowがworkflow_disptchによって実行されたかどうかを判定したいケースがありました。ざっくり前提はこんなかんじでした:
- releaseブランチからのPRに対して、特定の文字列でreviewコメントを行うことでtagを作成しpushさせる仕組みはすでにある
- 上記をworkflow_dispatchでも実行したい
- workflow_dispatch経由の場合は「releaseブランチどうか」判定をスキップしてtagを打ちたい
どうやったら判定できるのかなと思い、調べてみた次第です。
冒頭にも記載していましたが、以下のように記述することでworkflow_dispatch経由での実行かどうかを判定できます:
github.event_name == 'workflow_dispatch'
おまけ
ymlファイルで複数条件の判定を行いたかったため、そのような記述はどうしたら良いのだろう?と思って調べてみました。 2021/04/11時点、公式ドキュメントには記載ないが、以下のように記述することで、複数行の条件指定が行えます:
if : | condition1 condition2 condition3