Clean Architecture, Clean Life

仕事・個人での技術的なことつぶやきます

【GithubActions】composite run steps試してみたけどいまいちだった

経緯

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の署名処理とかでキー情報を使いたいケースがあるので

入り組んだファイル構成になってて書きづらい

公式によるとこちらのようなフォルダ構成にする必要があるようです

github.blog

別のファイルにあるだけでも可読性に欠けるからあまり嬉しくないのに、ちょっとビルドコマンド叩きたいがためだけにあまりやりたくないなーと

めちゃくちゃ複雑なことするor1ファイルにまとめると分岐がややこしくて行数がかなりかさんでしまうというような場合には有効かもしれません

正直そこまで複雑な処理をするのでなければ、同じファイルの中で分岐させたほうが行数は増えるけど何やってるかは追いやすくなるのでいいと思う

もし使われる方はこちらの注意点も参考にしていただけたらと思います

blog.n-z.jp

今後のアップデートに期待ですね

1ファイルにまとめる方法もまた書けたらいいなと思います

では読んででいただきありがとうございました

2021/09/09 追記

github.com

usesが使えるようになったようです

これでだいぶ使いやすくなったのではないでしょうか

さらにまだ対応していないものについても今後対応していくみたいです

github.com

Secretsが使えるようになったら再検討しようと思います