mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
105 lines
2.7 KiB
Markdown
105 lines
2.7 KiB
Markdown
# 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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```yaml
|
|
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.5` and `truffleruby-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:
|
|
|
|
```yaml
|
|
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.
|