はじめに
GitHub Actionsでは、Reusable workflowsという機能により、worflowを再利用するための仕組みが存在します。DRYにできるためとても便利なのですが、reusableに実装したworkflowを動作確認するにはどうすればいいのでしょうか。まさか、CIだからといって、動作確認せずにマージして、エラーがでないことを祈るというわけにもいきません。
actでやる場合
通常、workflowの動作確認には、actを利用することが多いかと思います。以前はworkflow_callにactは対応していませんでしたが、現在は対応済みです。
actを使っても良いのですが、workflowによっては、動作させるための前準備が面倒な時もあります。また、ローカル環境でなく本来動かすCI環境で動作確認できると尚嬉しいです。(ローカル環境の場合はコンテナ上で動かすので環境差分は少ないはずですが)
Reusable workflowsを利用したPRを作って動作確認する
特に難しい話ではありません。利用側で実際にそれを使ったPRをだして、確かめるというだけです。
前提として、Reusable workflowsを管理するGitHubリポジトリは、それを利用する側とは別のGitHubリポジトリで管理されているとします。(同じGitHubリポジトリで管理されているのであれば、単純にそれを使ったPRを出せば良いだけです。)
利用する側の job.uses でそのreusable workflowを指定します。その時、まだマージ前なので、 @
の後はブランチ名にします。ここがポイントです。通常、 @
の後にはタグのバージョンを指定します。以下は具体例です。
jobs:
sample-job:
uses: organization/repo/.github/workflows/reusable-workflow.yaml@hoge-branch
この変更のPRを出して、CIが期待通りに動作しているかをコンソールから確認します。