このところそれほどCI実行に時間のかからないRailsのプロジェクトをCircleCIからGithub Actionsに移行していたのですが、Github ActionsのVirtual EnvironmentsにインストールされているRubyのバージョンが微妙に最新ではないという状況が続いていて、actions/setup-rubyのリポジトリもIssueやPRへの反応が薄いということもあり、setup-rbenvというカスタム actionを作りました。GitHub Marketplaceでも公開してます。
GitHub Actions向けのaction(この言い回し、すげーかったるいんですけどなんとかなりませんかね...)作るのは初だったのですが、まだaction開発向けの情報が少ないということもあり、既存のactionやactions/toolkit を見て手探りで作っていったのでやりたいことの何度に比してやたら時間がかかりました。やってることもほとんどexecしているだけなので、unit testはまったく書いておらず、workflow で直接動作確認するという手探り感満載のコードになっています。
今のところ、v1
では各ステップでのコマンド実行時にrbenv 初期化を毎回書かなくてはならないのですが、これも何か回避策が見つからないかなと考えています。run
で実行されるコマンドは non-interactive, non-login shell のようなんですが、actionをcheckoutしたときに .bashrc
, .bash_profile
に追記されれば以後それが反映されるかどうかは要調査ですかね。