📝

自作の GitHub Actions を Marketplace 公開前にテストする

に公開

以前スクラップに書いた内容をベースに、自作のGitHub Actionsをテストするための方法をまとめてみる

https://zenn.dev/kromiii/scraps/06ff98a5cb3828

GitHubの公式ドキュメントに書かれている通り、カスタムアクションを定義するには、レポジトリ直下に action.yml というファイルを追加する必要がある

自分の場合だとこんな感じ

https://github.com/kromiii/stale-flag-detector/blob/main/action.yml

ここでカスアムアクションの名前や入力として受け付ける値、出力として後続のjobに受け渡す値などを定義する

runs: 以降に実際のコマンドをつらつらと書き下していくのだが、問題はここで書いたコマンドをどうやってテストするのかということである

この点については公式のドキュメントにも特に具体的な案内はなかった

もちろん動くかどうかわからないけれどもとりあえずMarketplaceに公開してみて、その後自分の他のレポジトリで、公開したActionsを試しながらデバッグするという方法もあるだろうが、デバッグの効率を考えるともう少し小回りをきかせたいところ

これには以下のようなテスト用のGitHub Actionを作ることで回避できる

https://github.com/kromiii/stale-flag-detector/blob/main/.github/workflows/test.yml

注目してほしいのは

- id: stale-flag-detector
  uses: ./ # Directly use the action

の部分で uses:./ を指定することでなんとレポジトリ直下に定義されている action.yml を直接読みにいくことができる

これを使うとわざわざGitHub Marketplace経由でActionsを引っ張ってこなくても、自分が開発中のブランチでカスタムアクションの動作を検証することができる

自分の場合は on: workflow_dispatch と組み合わせることで、mainブランチにマージする前にactionsの動作確認を行ってからマージするようにしている。

これによってカスタムアクションの開発効率がかなり上がる気がしている

Discussion