タダです.
GitHub Actions を使っていてこれまでは開発者からのpush
やpull_request
のイベントをトリガーに動かしていましたが,特定のワークフロー完了後に別のワークフロー を動かすことをやったので設定をまとめていきます.
概要
以下の2つのワークフロー があって,before-action.yml
が完了後にafter-action.yml
が動作するようにしたいです.
- before-action.yml : 特定ブランチ削除後にタグを打つ処理
- after-action.yml : タグを打った後の実行される処理
GitHub Actions の定義
上記のことを実現するための GitHub Actions が下記になります.after-action.yml
のトリガーで push
イベントを最初設定していましたが,GitHub Actions の中での push
があっても動作しませんでした.変わりにworkflow_run
を使っています.workflows
でトリガーするワークフロー名,branches
でトリガーのワークフローが実行されるブランチ,types
でワークフロー のステータスが完了になったら動作するよう設定しました.
before-action.yml
name: Before Actions on: delete jobs: test: runs-on: ubuntu-latest steps: - name: 'Checkout' uses: actions/checkout@v2 - name: git tag run: | git tag xxx git push origin xxx if: startsWith(github.event.ref, 'hoge')
after-action.yml
name: After Actions on: workflow_run: workflows: - Before Actions branches: main types: - "completed" jobs: test: runs-on: ubuntu-latest steps: - name: 'Checkout' uses: actions/checkout@v2 - name: print run: echo "OK"
参考情報
実行結果
実行結果を確認してみたところ期待通りに動作したことを確認しました.
まとめ
別のワークフロー の結果をトリガーに動作するワークフローを作ったので備忘録としてまとめました.同じような目的の方の参考になれば嬉しいです.