mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a68550f2e | ||
|
|
bd94d6a504 | ||
|
|
b9d02e5f7e | ||
|
|
4d8ce7b87d | ||
|
|
cd9d3de43b | ||
|
|
7baabd2c5d | ||
|
|
e5517072e8 |
@@ -145,6 +145,28 @@ jobs:
|
||||
rubygems: 3.2.3
|
||||
- run: gem --version | grep -F "3.3.3"
|
||||
|
||||
testMajorBundlerVersion:
|
||||
name: "Test with a major Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: 2.6
|
||||
bundler: 2
|
||||
- run: bundle --version | grep -P "Bundler version 2\.\d+\.\d+"
|
||||
|
||||
testMinorBundlerVersion:
|
||||
name: "Test with a minor Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: 2.6
|
||||
bundler: 2.2
|
||||
- run: bundle --version | grep -P "Bundler version 2\.2\.\d+"
|
||||
|
||||
testExactBundlerVersion:
|
||||
name: "Test with an exact Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -15,7 +15,7 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
||||
| Interpreter | Versions |
|
||||
| ----------- | -------- |
|
||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.1.1, head, debug, mingw, mswin |
|
||||
| `jruby` | 9.1.17.0 - 9.3.3.0, head |
|
||||
| `jruby` | 9.1.17.0 - 9.3.4.0, head |
|
||||
| `truffleruby` | 19.3.0 - 22.0.0, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 22.0.0, head |
|
||||
|
||||
@@ -39,7 +39,7 @@ The action works for all [GitHub-hosted runners](https://help.github.com/en/acti
|
||||
|
||||
| Operating System | Recommended | Other Supported Versions |
|
||||
| ----------- | -------- | -------- |
|
||||
| Ubuntu | `ubuntu-latest` (= `ubuntu-20.04`) | `ubuntu-18.04`, `ubuntu-16.04` |
|
||||
| Ubuntu | `ubuntu-latest` (= `ubuntu-20.04`) | `ubuntu-18.04` |
|
||||
| macOS | `macos-latest` (= `macos-10.15`) | `macos-11.0` |
|
||||
| Windows | `windows-latest` (= `windows-2019`) | `windows-2022` |
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ inputs:
|
||||
Defaults to 'default'.
|
||||
bundler:
|
||||
description: |
|
||||
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1.4).
|
||||
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1, 2.1.4).
|
||||
For 'Gemfile.lock', the version is determined based on the BUNDLED WITH section from the file Gemfile.lock, $BUNDLE_GEMFILE.lock or gems.locked.
|
||||
Defaults to 'Gemfile.lock' if the file exists and 'latest' otherwise.
|
||||
required: false
|
||||
|
||||
+7
-5
@@ -65,8 +65,8 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
|
||||
bundlerVersion = '2'
|
||||
}
|
||||
|
||||
if (/^\d+/.test(bundlerVersion)) {
|
||||
// OK
|
||||
if (/^\d+(?:\.\d+){0,2}$/.test(bundlerVersion)) {
|
||||
// OK - input is a 1, 2, or 3 part version number
|
||||
} else {
|
||||
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
|
||||
}
|
||||
@@ -95,9 +95,12 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
|
||||
console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
|
||||
} else {
|
||||
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||
const bundlerVersionConstraint = /^\d+\.\d+\.\d+/.test(bundlerVersion) ? bundlerVersion : `~> ${bundlerVersion}`
|
||||
// Workaround for https://github.com/rubygems/rubygems/issues/5245
|
||||
const force = (platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) ? ['--force'] : []
|
||||
|
||||
const versionParts = [...bundlerVersion.matchAll(/\d+/g)].length
|
||||
const bundlerVersionConstraint = versionParts === 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
|
||||
|
||||
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
|
||||
}
|
||||
|
||||
@@ -192,8 +195,7 @@ async function computeBaseKey(platform, engine, version, lockFile, cacheVersion)
|
||||
|
||||
if (common.isHeadVersion(version)) {
|
||||
if (engine !== 'jruby') {
|
||||
// CRuby dev versions do not change the ABI version when the ABI changes, so use the commit as the ABI version
|
||||
let print_abi = engine === 'ruby' ? 'print RUBY_REVISION' : "print RbConfig::CONFIG['ruby_version']"
|
||||
let print_abi = "print RbConfig::CONFIG['ruby_version']"
|
||||
let abi = ''
|
||||
await exec.exec('ruby', ['-e', print_abi], {
|
||||
silent: true,
|
||||
|
||||
+10
-8
File diff suppressed because one or more lines are too long
@@ -31,4 +31,3 @@ versions['mswin'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/rub
|
||||
versions['ucrt'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-ucrt.7z'
|
||||
|
||||
File.binwrite 'windows-versions.json', "#{JSON.pretty_generate(versions)}\n"
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ export async function run() {
|
||||
try {
|
||||
await setupRuby()
|
||||
} catch (error) {
|
||||
core.setFailed(error.message)
|
||||
core.setFailed(error.stack)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
engine_input, version = ARGV.fetch(0).split('-', 2)
|
||||
|
||||
if engine_input == 'windows'
|
||||
require_relative 'generate-windows-versions'
|
||||
exit
|
||||
end
|
||||
|
||||
MATCH = case engine_input
|
||||
when 'ruby', 'jruby'
|
||||
/^\d+\.\d+\./
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"jruby": [
|
||||
"9.1.17.0",
|
||||
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1",
|
||||
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0",
|
||||
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0",
|
||||
"head"
|
||||
],
|
||||
"truffleruby": [
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"3.0.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.2-1/rubyinstaller-3.0.2-1-x64.7z",
|
||||
"3.0.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-3.0.3-1-x64.7z",
|
||||
"3.1.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.0-1/rubyinstaller-3.1.0-1-x64.7z",
|
||||
"3.1.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.1-1/rubyinstaller-3.1.1-1-x64.7z",
|
||||
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z",
|
||||
"mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z",
|
||||
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
|
||||
|
||||
Reference in New Issue
Block a user