⛳
Github-actions botからのcommitで別のjobをトリガーしたい(解決策: Github Apps)
やりたいこと
あるPRがmainにmergeされた時に、autoupdate が適用されるブランチのPRのworkflowをトリガーしたい。
autoupdateはPRのブランチを最新に自動更新するGitHub Actionで、変更がmainブランチにマージされると、自動でマージ先がmainのプルリクエストのブランチが更新(mainの取り込み)される。
下記の画像はautoupdateが実行された時に、対象のPRの特定のworkflow(check-labels)がトリガーされず、Expectedのままの状態。
原因
${{ secrets.GITHUB_TOKEN }}を使用してworkflow内でタスクを実行する場合、別のワークフロー実行はトリガーされない。
予想外の再帰的なワークフローの実行が生じないようにするためらしい。
解決策
・Github tokenではなくgithub appsを使って認証をする <- こっちを選択
・personal access tokenを発行してセットする
Github Apps導入
appsの設定に関しては、下記記事通りに進めた。
Repository permissionsの部分のみ補足。今回はGIthub Appsを使用して、他のブランチへのautoupdateを実行、別のワークフローをトリガーさせる、の2点を実行したいので、下記に”Read and Write”の権限を付与。「Metadata」に関してはデフォルトで"Read-only"。
詰まった部分
autoupdateから別のワークフローを呼び出せるかなと模索し、時間を費やしたが、そもそもGITHUB_TOKENが別のワークフローを呼び出す権限がないことを考えるべきだった。
Discussion