あるワークフローから他のワークフローを実行する方法


はじめに

GITHUB のエンドポイントに POST するやり方もあるかと actions 使った方が見通しがいいので actions を使った説明をします。(備忘録がメイン)

今回、こちらの actions を使います。

やりたいこと

dispatcher.yml を実行したら dispatched.yml を実行すること。

コード

.github/workflows
├── dispatched.yml
└── dispatcher.yml
dispatcher.yml
name: Dispatcher
on: [workflow_dispatch]


jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
    - name: Invoke workflow
      uses: benc-uk/workflow-dispatch@v1
      with:
        workflow: Dispatched
        token: ${{ secrets.TOKEN }}
        inputs: '{ "message": "blah blah", "debug": "true" }'
dispatched.yml
name: Dispatched
on:
  workflow_dispatch:
    inputs:
      message:
        default: 'test'
      debug:
        default: 'false'

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
    - name: Tests
      run:
        echo ${{ github.event.inputs.message }}
        echo ${{ github.event.inputs.debug }}

実装の解説

書く必要ないかもしれないが・・・・

  • dispatched.yml のワークフローに name という蘭に名前を設定
  • キャッチしたいパラメータも記述
  • dispatcher.yml の Invoke workflow で実行したいワークフローの名前を指定
  • 入力したいパラメータを入力

まとめ

今回、同一レポジトリにおいて他のワークフローを実行する方法を紹介しました。
他のレポジトリのワークフローも実行することが可能です。
必要であればぜひ使ってください。