notebook

都内でWEB系エンジニアやってます。

GitHub Actionsのruby/setup-rubyで.ruby-versionのバージョンを指定する

下記の記事を読んで

GitHub Actions の setup-go や setup-node で指定されるバージョンを go.mod や .node-version から取ってくる - stefafafan の fa は3つです

blog.stenyan.jp

これは便利だ!と手元のsetup-xxxを上記記事での指定方法にしようとしたらRubyはちょっと事情が違っていた

Rubyの場合はruby/setup-rubyを使用しているが、他の言語のように.xxx-version-fileでの指定ではなく

ruby-versionで指定するようになっていた(v1.115.3時点)

次のように指定することで.ruby-versionもしくは.tool-versionのバージョンを読み取ってくれる

  • .ruby-version,.tool-versionの順に探し存在するファイルからバージョン情報を読み込む
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: default

コード読んだ感じdefaultがデフォルト値になっているのでruby-versionを指定しなくてもどちらか探してくれる

  • 明示的にこのファイルと指定してもOK
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: .ruby-version
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: .tool-version

.tool-versionは何のツールで使っているのか知らなかったが調べたらasdfで使用するよう

ちなみに特定のバージョンも指定せず.ruby-version, .tool-versionが存在しない場合は下記のようにエラーになる

Error: Error: input ruby-version needs to be specified if no .ruby-version or .tool-versions file exists