mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66836a17bb | ||
|
|
933f496844 | ||
|
|
b3249de963 | ||
|
|
2a5386fca2 | ||
|
|
51f9fc6d8a | ||
|
|
0b83c28888 | ||
|
|
98c68de273 | ||
|
|
4c25e810ed | ||
|
|
2127b4bb68 | ||
|
|
626b752912 | ||
|
|
819c372fe9 | ||
|
|
268389d93d | ||
|
|
92bcdc74f7 |
@@ -11,9 +11,9 @@ 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 |
|
||||
| Ruby | 2.3.0 - 2.3.8, 2.4.0 - 2.4.9, 2.5.0 - 2.5.7, 2.6.0 - 2.6.5, 2.7.0 |
|
||||
| JRuby | 9.2.9.0 |
|
||||
| TruffleRuby | 19.3.0 |
|
||||
| TruffleRuby | 19.3.0, 19.3.1 |
|
||||
|
||||
The recommended way to refer to these versions is:
|
||||
`2.3`, `2.4`, `2.5`, `2.6`, `2.7`, `jruby`, `truffleruby`.
|
||||
@@ -24,6 +24,7 @@ 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.
|
||||
On Windows, Ruby 2.4 uses OpenSSL 1.0.2, which is no longer maintained.
|
||||
|
||||
### Supported Platforms
|
||||
|
||||
@@ -88,7 +89,31 @@ jobs:
|
||||
|
||||
Currently, Bundler is guaranteed to be installed for all versions.
|
||||
If the Ruby ships with Bundler (Ruby >= 2.6), that version is used.
|
||||
Otherwise (Ruby < 2.6), the latest version of Bundler is installed when that Ruby was built.
|
||||
Otherwise (Ruby < 2.6), Bundler 1 is installed when that Ruby was built.
|
||||
|
||||
### Caching `bundle install`
|
||||
|
||||
You can cache the installed gems with these two steps:
|
||||
|
||||
```yaml
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-
|
||||
- name: Bundle install
|
||||
run: |
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3
|
||||
```
|
||||
|
||||
When using a single job with a Ruby version, replace `${{ matrix.ruby }}` with the Ruby version.
|
||||
When using `.ruby-version`, replace `${{ matrix.ruby }}` with `${{ hashFiles('.ruby-version') }}`.
|
||||
|
||||
This uses the [cache action](https://github.com/actions/cache).
|
||||
The code above is a more complete version of the [Ruby - Gem example](https://github.com/actions/cache/blob/master/examples.md#ruby---gem).
|
||||
Make sure to include `use-ruby` in the `key` to avoid conflicting with previous caches.
|
||||
|
||||
## Limitations
|
||||
|
||||
|
||||
+6
-2
@@ -1399,6 +1399,10 @@ async function run() {
|
||||
if (platform === 'windows-latest') {
|
||||
rubyPrefix = await windows.downloadExtractAndSetPATH(ruby)
|
||||
} else {
|
||||
if (ruby.startsWith('jruby')) {
|
||||
// Workaround for https://github.com/actions/virtual-environments/issues/242
|
||||
core.exportVariable('CLASSPATH', '')
|
||||
}
|
||||
rubyPrefix = await downloadAndExtract(platform, ruby)
|
||||
core.addPath(`${rubyPrefix}/bin`)
|
||||
}
|
||||
@@ -6495,7 +6499,7 @@ async function downloadExtractAndSetPATH(ruby) {
|
||||
core.exportVariable('PATH', newPath)
|
||||
|
||||
if (!fs.existsSync(`${rubyPrefix}\\bin\\bundle.cmd`)) {
|
||||
await exec.exec(`${rubyPrefix}\\bin\\gem install bundler --no-document`)
|
||||
await exec.exec(`${rubyPrefix}\\bin\\gem install bundler -v "~> 1" --no-document`)
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
@@ -6526,7 +6530,7 @@ function setupPath(msys2, rubyPrefix) {
|
||||
path = path.filter(e => !e.match(/\bRuby\b/))
|
||||
|
||||
// Add MSYS2 in PATH
|
||||
path.unshift(`${msys2}\\mingw64`, `${msys2}\\usr`)
|
||||
path.unshift(`${msys2}\\mingw64\\bin`, `${msys2}\\usr\\bin`)
|
||||
|
||||
// Add the downloaded Ruby in PATH
|
||||
path.unshift(`${rubyPrefix}\\bin`)
|
||||
|
||||
@@ -18,6 +18,10 @@ async function run() {
|
||||
if (platform === 'windows-latest') {
|
||||
rubyPrefix = await windows.downloadExtractAndSetPATH(ruby)
|
||||
} else {
|
||||
if (ruby.startsWith('jruby')) {
|
||||
// Workaround for https://github.com/actions/virtual-environments/issues/242
|
||||
core.exportVariable('CLASSPATH', '')
|
||||
}
|
||||
rubyPrefix = await downloadAndExtract(platform, ruby)
|
||||
core.addPath(`${rubyPrefix}/bin`)
|
||||
}
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ export async function downloadExtractAndSetPATH(ruby) {
|
||||
core.exportVariable('PATH', newPath)
|
||||
|
||||
if (!fs.existsSync(`${rubyPrefix}\\bin\\bundle.cmd`)) {
|
||||
await exec.exec(`${rubyPrefix}\\bin\\gem install bundler --no-document`)
|
||||
await exec.exec(`${rubyPrefix}\\bin\\gem install bundler -v "~> 1" --no-document`)
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
@@ -59,7 +59,7 @@ function setupPath(msys2, rubyPrefix) {
|
||||
path = path.filter(e => !e.match(/\bRuby\b/))
|
||||
|
||||
// Add MSYS2 in PATH
|
||||
path.unshift(`${msys2}\\mingw64`, `${msys2}\\usr`)
|
||||
path.unshift(`${msys2}\\mingw64\\bin`, `${msys2}\\usr\\bin`)
|
||||
|
||||
// Add the downloaded Ruby in PATH
|
||||
path.unshift(`${rubyPrefix}\\bin`)
|
||||
|
||||
Reference in New Issue
Block a user