前提
GitHub Actions の workflow_dispatch は、デフォルトブランチ上に存在していないと実行できないという制約があります。
公式ドキュメント
そのため、
- 「まだ動作確認中の workflow を実行して試したい」
- 「feature ブランチで workflow を作っているけど手動実行したい」
といった場面で困ることがありました。
そんな方のために、この記事ではデフォルトブランチ上にないworkflowをworkflow_dispatchで実行する方法を紹介します。
実行手順
1. workflow のトリガーに on.push を追加して「Actions として認識」させる
GitHub Actions は、workflow_dispatch のみでは
デフォルトブランチ上に存在しない workflow をActionsとして認識せず、GitHubの画面上に表示されません。
そのため、一度 on.push を追加してあげることで、
GitHub が該当 workflow を正式に認識し、画面上に表示されるようになります。
name: Sample Workflow Dispatch
on:
push:
branches:
- main
- hoge
workflow_dispatch:
inputs:
greeting:
required: false
default: "Hello"
name:
required: true
default: "Tarou"
jobs:
print:
runs-on: ubuntu-latest
steps:
- name: Print Greeting
run: echo "${{ inputs.greeting }}, ${{ inputs.name }}!"
こんな感じで表示されるようになる
2. GitHub CLIでworkflowをブランチ指定で実行する。
このままだと、まだ画面上からworkflowを実行することができないですが、GitHub CLIからなら以下の手順で実行することができます。
※インストールしていない方は公式ドキュメントを参考にインストールとログインを行なってください。
①workflowの一覧を確認します。
以下のコマンドで先ほどActionsとして認識させたworkflowが表示されることを確認してください。
gh workflow list

※GitHubの画面にworkflowが出ていない(Actionsとして認識していない)状態であれば、ここにも表示されないです。
②workflowを実行する。
以下のコマンドでworkflowとブランチを指定して実行してください。
※ブランチはworkflowをコミットしているブランチを指定
gh workflow run <workflowファイル名 or ID> --ref <ブランチ名>


