経緯
GitlabCI→GithubActionsへの移行作業しているとき、Gitlabだとextendsっていう機能があって、Jobのテンプレートみたいなものが作れたんですよね
.tests: script: rake test stage: test only: refs: - branches rspec: extends: .tests script: rake rspec only: variables: - $RSPEC
こんな感じでかけます(公式より)
Githubでもないかなーと探していたら、同じ機能ではないけど似たような機能として「composite run steps」っていうものを見つけたので試してみることに
結論
現状非対応のものが多く、あまり使い勝手の良いものではないなーという印象でした
非対応のものが多い
公式によると、
This feature does not support at the run step level:
- timeout-minutes
- secrets
- conditionals (needs, if, etc.)
- continue-on-error
とあります
secretが非対応なのは少し辛いですね
APKの署名処理とかでキー情報を使いたいケースがあるので
入り組んだファイル構成になってて書きづらい
公式によるとこちらのようなフォルダ構成にする必要があるようです
別のファイルにあるだけでも可読性に欠けるからあまり嬉しくないのに、ちょっとビルドコマンド叩きたいがためだけにあまりやりたくないなーと
めちゃくちゃ複雑なことするor1ファイルにまとめると分岐がややこしくて行数がかなりかさんでしまうというような場合には有効かもしれません
正直そこまで複雑な処理をするのでなければ、同じファイルの中で分岐させたほうが行数は増えるけど何やってるかは追いやすくなるのでいいと思う
もし使われる方はこちらの注意点も参考にしていただけたらと思います
今後のアップデートに期待ですね
1ファイルにまとめる方法もまた書けたらいいなと思います
では読んででいただきありがとうございました
2021/09/09 追記
usesが使えるようになったようです
これでだいぶ使いやすくなったのではないでしょうか
さらにまだ対応していないものについても今後対応していくみたいです
Secretsが使えるようになったら再検討しようと思います