use-ruby
This action downloads a prebuilt ruby and adds it to $PATH.
It is very efficient and takes about 5 seconds to download, extract and add the given Ruby to $PATH.
No extra packages need to be installed.
Supported Versions
This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions |
|---|---|
| Ruby | 2.3.8, 2.4.9, 2.5.7, 2.6.5, 2.7.0 |
| JRuby | 9.2.9.0 |
| TruffleRuby | 19.3.0 |
See https://github.com/eregon/ruby-install-builder/blob/metadata/versions.json for the always up-to-date list of available Ruby versions.
Note that Ruby 2.3 and the OpenSSL version it needs (1.0.2) are both end-of-life, which means Ruby 2.3 is unmaintained and considered insecure.
Supported Platforms
The action works for the ubuntu-16.04, ubuntu-18.04 and macos-latest GitHub-hosted runners.
windows-latest is not yet supported.
The prebuilt rubies are generated by https://github.com/eregon/ruby-install-builder.
Usage
Single Job
name: My workflow
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: eregon/use-ruby-action@master
with:
ruby-version: ruby-2.6
- run: ruby -v
Matrix
name: My workflow
on: [push]
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
ruby: [ ruby-2.6, ruby-2.7, jruby-9.2.9.0, truffleruby-19.3.0 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: eregon/use-ruby-action@master
with:
ruby-version: ${{ matrix.ruby }}
- run: ruby -v
Supported Version Syntax
- engine-version like
ruby-2.6.5andtruffleruby-19.3.0 - short version like
2.6, automatically using the latest release matching that version (2.6.5) - version only like
2.6.5, assumes MRI for the engine - engine only like
truffleruby, uses the latest stable release of that implementation
All Stable Versions
With that, we can test on all stable releases of MRI, JRuby and TruffleRuby with:
name: My workflow
on: [push]
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
ruby: [ 2.4, 2.5, 2.6, 2.7, jruby, truffleruby ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: eregon/use-ruby-action@master
with:
ruby-version: ${{ matrix.ruby }}
- run: ruby -v
Limitations
- Currently does not work on Windows since the builder doesn't build on Windows. https://github.com/MSP-Greg/actions-ruby is an alternative on Windows.
- This action currently only works with GitHub-hosted runners, not private runners.