GitHub Actions にはずっと手動実行が提供されていなかったので repository_dispatch
トリガーを使って GitHub API 経由で起動することでしのいでいました。この方法は Master ブランチにしか適用できないという制約がありました。
先月 workflow_dispatch
という手動実行用のトリガー機能がリリースされてました。
日本語ドキュメントへの反映はまだのようです。
https://docs.github.com/en/actions/reference/events-that-trigger-workflows#manual-events
トリガーとして workflow_dispatch
を指定してワークフローを選択すると Run workflow
というボタンが表示され手動実行が可能になります。repository_dispatch
と違ってブランチを指定することができます。
on: workflow_dispatch:
さらに Action を書く時に使用するメタデータ構文で、ワークフロー実行時の入力値を設定できます。
workflow_dispatch
に inputs でログレベルやタグ名を指定するサンプルが紹介されています。
on: workflow_dispatch: inputs: logLevel: description: 'Log level' required: true default: 'warning' tags: description: 'Test scenario tags'
実行時に入力フォームが生成され、入力値を設定できます。この例では logLevel
は必須で、デフォルト値として warning
が設定されます。
ワークフローの job では入力値を github.event
から取得でき、${{ github.event.inputs.logLevel }}
のように取り出すことができます。
Jenkins のパラメータ付きビルドのように使えそうです。
- テストケース番号を指定してテスト結果の成果物ファイル名に埋め込む
- 他リポジトリのブランチ・タグを指定して checkout してテストする
などなど、いろいろと使い道が考えられます。
workflow_dispatch
はGitHub API 経由で呼ぶことも可能です。Web UI と同様ブランチ指定する ref
や inputs
を POST パラメータで指定できます。
https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event