概要
github actions が手動トリガーに対応していたので試してみた
workflow-dispatch-eventを利用することで実行することが可能
公式ドキュメント
- https://docs.github.com/ja/actions/reference/events-that-trigger-workflows#status
- https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event
Workflowファイルの作成
- workflow_dispatch を 利用したworkflowファイルを作成し、リポジトリに対してpushを行う
workflow.yml
on: workflow_dispatch
name: Workflow dispatch events
jobs:
dispatch:
name: Workflow dispatch events
runs-on: ubuntu-latest
steps:
- name: Hello
run: |
echo "hello"
Web上で実行
コマンドラインから実行
パーソナルアクセストークンの作成
- コマンドラインからの実行にはPERSONAL_ACCESS_TOKENが必要のため発行しておく
workflow_idの取得
- 発行したPERSONAL_ACCESS_TOKENを利用して、下記コマンドより該当ワークフローのidを取得する。一度今度Web上でworkflowを実行した後であれば、workflow実行履歴のURLから確認することも可能
$ curl \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token [PERSONAL_ACCESS_TOKEN]" \
https://api.github.com//repos/{owner}/{repo}/actions/workflows
workflowの実行
- URLに対し POST を行うことで、workflowファイルの実行が可能
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token [PERSONAL_ACCESS_TOKEN]" \
https://api.github.com/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches \
-d '{"ref":"master"}'