TL;DR
-
workflow_dispatch
Webhook イベント発生時に実行されるよう設定する - 新しくブランチを作成し、ワークフローに変更を加えた上で push する
- GitHub の Actions タブへ遷移する
- ドロップダウンで先ほどのブランチを選択し、
Run workflow
をクリックする
詳解
workflow_dispatch
イベントで実行されるように設定
deploy-hogehoge.yaml
name: Deploy Hogehoge
on:
workflow_dispatch: ## この記述が必要
push:
branches:
- main
- prod
新しくブランチを作成して push
新しくテスト用のブランチを作成し、ワークフローの yaml ファイルに変更を加えたあと、コミット -> プッシュする。
コミット前に GitHub Actions 用のリンターを使ってワークフローの文法チェックをしてもいいかもしれない。
> git sw -c feat/test-ghactions
(テストしたいワークフローの内容に書き換えてコミット)
> git push origin HEAD
GitHub の Actions タブへ遷移
GitHub をブラウザで開き Actions タブへ遷移したあと、特定のワークフローを選択する。
そうすると、This workflow has a workflow_dispatch event trigger.
という説明とプルダウンが現れる。
先ほどのブランチを選択して Run workflow
これでデフォルトブランチ (main
とか) にマージしなくてもワークフロー変更時のテストを行うことができる。
おまけ
上述のようにワークフローが workflow_dispatch
Webhook イベント発生時に実行されるよう設定しておけば、REST API を使用してワークフローを実行することもできるみたいなのでやってみる。
アクセストークンの発行が必要。
workflow_id
はワークフローのファイル名でも代用可能とのこと。
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/dispatches \
-d '{"ref":"feat/test-ghactions"}'