76
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub ActionsAdvent Calendar 2021

Day 18

workflow_dispatch の使い方、使い所

Last updated at Posted at 2021-12-17

はじめに

こちらの記事は GitHub Actions Advent Calendar 2021の18日目の記事となります。他の皆様の投稿もぜひご覧ください!

今回は GitHub Actions のワークフローをトリガーするイベントの一つである、 workflow_dispatch についてまとめていきたいと思います。こちらのイベントは昨年の6月に使えるようになったイベントです。実際に使ってみるととても便利です。使えるようになってからだいぶ時間は経っていますが、使い方だったり、どういう時に使えるのか、といったことを紹介しようと思います。

workflow_dispatch イベントとは

  • ワークフローを手動で実行できるイベント
  • 実行ブランチを選択できるUIがデフォルトで追加される
  • 実行時のパラメータは独自の項目についてもUIで指定できる

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

#使い方

基本的な使い方

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 タブからワークフローにアクセスすることができ、手動実行できるようになっています。また、ワークフローを実行するブランチを選択できるようにもなっています。
workflow_dispatch sample 1

Run workflow ボタンから実行してみます。
run workflow_dispatch sample 1
無事実行できました。

###実行時にデータを付与したい
今度は、ブランチを選択できるだけではなく、挨拶する人の名前を実行時に指定できるようにします。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 }}"

参考: https://docs.github.com/ja/actions/learn-github-actions/events-that-trigger-workflows#example-workflow-configuration

再びデフォルトブランチにマージし、GitHub上から確認してみます。
run workflow_dispatch sample 1
今度はブランチだけでなく、Nameも入力できるようになっています。Chihiroと入力し、実行してみます。
run workflow_dispatch sample 1
入力した名前がちゃんと参照されています。

###注意
ワークフローを手動で実行するためには、ワークフロー(ymlファイル)がデフォルトブランチに含まれていないといけません。

To trigger the workflow_dispatch event, your workflow must be in the default branch.

参考: https://docs.github.com/ja/actions/managing-workflow-runs/manually-running-a-workflow#configuring-a-workflow-to-run-manually

#使い所

特におすすめなのは、普段スケジュール実行(schedule)しているワークフローに対してworkflow_dispatchもつけておくことです。イベントは複数指定することができるため、scheduleworkflow_dispatchの両方を指定することが可能です。

スケジュール実行しているワークフローが失敗した時に、対応をするために試行錯誤しながら何度かワークフローを実行することになると思います。スケジュール実行のままだとワークフローを任意のタイミングで実行できないので、今まではその都度pushなどに書き換えていました。

workflow_dispatchをつけてあるとイベント部分を書き換えなくて済みます。pushに書き換えて作業をしても良いのですが、あとで戻し忘れたりすることもあったりするのでworkflow_dispatchをつけておくに越したことはないかなという感じです。

大したことないことのように見えるかもですが、実際にworkflow_dispatchを指定してみるとめちゃくちゃ便利さを感じています。

#最後に
GitHub Actions、楽しい!
引き続きいろいろ使っていこうと思います。

76
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
76
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?