🔍
𝕏📘📖☁️
GitHub Actions workflow_dispatch の設定してみる ⚡

GitHub Actions workflow_dispatch の設定してみる ⚡

GitHub Actions のイベントトリガーには、workflow_dispatch というものがあります 🚀

これを設定することで、手動で GitHub Actions 実行のトリガーを作ることができます ✨

workflow_dispatch とは

workflow_dispatch は、GitHub Actions を手動で実行するためのイベントトリガーです。以下の特徴があります:

  • 手動実行: ブラウザから任意のタイミングで実行可能 🖱️
  • パラメータ指定: 実行時に引数を指定できる 📝
  • ブランチ選択: 実行するブランチを選択可能 🌿

実装例

適用したリポジトリ

terraform-cloud-oci で実際に設定してみました。

workflow_dispatch 部分を抜粋したものは以下になります:

on:
  workflow_dispatch:
    inputs:
      args:
        description: 'Args to terraform (default: show)'
        required: true
        default: 'show'

jobs:
  terraform:
    name: Terraform
    runs-on: ubuntu-latest
    steps:
      - name: Terraform ${{ github.event.inputs.args }}
        run: terraform ${{ github.event.inputs.args }}
        if: ${{ github.event_name == 'workflow_dispatch' }}

設定項目の説明

  • inputs: 実行時に指定できるパラメータを定義 📋
  • description: パラメータの説明文
  • required: 必須パラメータかどうか
  • default: デフォルト値

使用方法

ブラウザからの実行

GitHub をブラウザで開き、Actions タブに移動すると、以下のように Run workflow という項目が追加されています 🎯

GitHub Actions の workflow_dispatch 設定画面

ブラウザからは上記から workflow を実行することができ、この時に以下を指定できます:

  • Branch: 実行するブランチ 🌿
  • 引数: 設定したパラメータの値 ⚙️

API からの実行

API を使用して実行する方法もあります 🔌

curl -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Authorization: token YOUR_TOKEN" \
  https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/dispatches \
  -d '{"ref":"main","inputs":{"args":"plan"}}'

活用例

  • デプロイ作業: 本番環境への手動デプロイ 🚀
  • テスト実行: 特定のテストスイートの実行 🧪
  • メンテナンス: データベースのマイグレーションなど 🔧
  • 緊急対応: 障害時の緊急処理実行 🚨

まとめ

workflow_dispatch を使用することで、GitHub Actions をより柔軟に活用できます 💡 定期実行だけでなく、必要な時に手動で実行できる仕組みを作ることで、運用の幅が広がります。

参考資料

関連記事