MENU

Github Actions WFを手動実行できるworkflow_dispatchを使ってみる

Github ActionsのWork Flow(以下WF)実行時には、
デフォルトブランチの「.github/workflows」ディレクトリ配下に設置しているWFファイルが自動的に参照されると思います。

この仕様だと、結構面倒くさいなぁ、と思うケースに出くわすことがあって。
そもそもWFファイルを作成・修正するプルリクエストをデフォルトブランチに向けて出したい時に、
「デフォルトブランチにWFファイルがないとWF自体実行できないので、とりあえずApploveしてください!動作検証はその後で!」
とせざるを得なくて、なんだか気持ち悪かったですが、(WFが上手く動かなかったら手戻りにもなるし…)
workflow_dispatchを使ってWFを手動実行することで、どのブランチにあるWFファイルを使うかを指定することができるみたいです。

早速、軽く試してみました。

目次

導入〜検証

導入

公式ドキュメントを参照すると、

To use the workflow_dispatch event, you need to include it as a trigger in your GitHub Actions workflow file. The example below only runs the workflow when it’s manually triggered:

https://docs.github.com/ja/actions/learn-github-actions/events-that-trigger-workflows#workflow_dispatch

ということで、
トリガーにworkflow_dispatchを追加するだけで大丈夫そう。

なお、

To trigger the workflow_dispatch event, your workflow must be in the default branch. For more information about configuring the workflow_dispatch event, see “Events that trigger workflows”.

との記載もあり、workflow_dispatchの設定をしたWFファイル自体はデフォルトブランチに設置しておく必要があるみたいです。
それはそうか。

早速設定してみます。

設定

設定はこんな感じ。
code

workflow_dispatch関連の所を抜粋すると、以下のような感じ。

on:
  workflow_dispatch:
    inputs:
      drink:
        description: 'order drink'
        required: true
      food:
        description: 'order food'
        required: false
  • WFのトリガー に`workflow_dispatch`を追加(これは必須)
  • inputsを設定。(WF実行時にパラメータを渡す設定。必須じゃないです。)

で、いざ検証です。

検証

どうやら、Github Cliでコマンド実行も可能なようですが、
今回はブラウザから実行してみます。

リポジトリ > Actions タブ を見てみると、
これまで表示されていなかった
「Manually trigger workflor」ボタンを押してみると、
WFを手動実行できそうな表示に切り替わりました。

「Run workflow」を押して見ると、

なるほど、ここで

  • どのブランチのWFファイルを参照するか
  • inputsパラメータを入力

を設定するのか。

「Use workflow from」を押してみると

おー、デフォルトブランチ以外も表示されました。

折角なので、
featureブランチを設定して、パラメータ適当に入れてWFを実行してみます。


動きました!こんな感じで、無事デフォルトブランチ以外のWFファイルを参照して、WF実行できました。

めでたしめでたしです。
満足。

まとめ

workflow_dispatchを設定することで、
Githubのブラウザ上から以下のことができるようになりました!

  • WFの手動実行
  • どのブランチにあるWFファイルを使うかを指定

便利!!

注意したいところ

検証環境には、あった方がいいと思う!けど、
本番環境の場合、事故るケースがありそうなので注意したほうがよさそう。

例えばレビュー〜デプロイが以下のようなフローになっている場合、

  • デフォルトブランチへのマージはレビュー必須
  • 本番WFの実行トリガーはデフォルトブランチへのマージ

上記のフローにworkflow_dispatchを追加設定してしまうと、
レビューしていないのに、workflow_dispatchの手動実行により本番環境にデプロイされてしまった!
という事故が想定されます。(そんな悪質な開発者いるか、という感じもしますが..)

ということもあり、
workflow_dispatch、便利なので積極的に導入したいですが、使い所は精査したほうが良さそうです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次