GitHub Actions workflowがworkflow_disptchによって実行されたかどうかを判定する

f:id:shoheikawano:20210411153857p:plain

TL;DR

github.event_name == 'workflow_dispatch' 

workflow_dispatchとは?

GitHub Actionsのworkflow_dispatchを使うと、定義したWorkflowを手動で実行できます。

詳細は公式ドキュメントを読んでみてください。

docs.github.com

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

How to write multi-line condition in if - #2 by brightran - GitHub Actions - GitHub Support Community