mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a68550f2e |
@@ -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
|
||||
|
||||
+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
|
||||
|
||||
+6
-3
@@ -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])
|
||||
}
|
||||
|
||||
|
||||
+6
-3
@@ -79,8 +79,8 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
|
||||
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}`)
|
||||
}
|
||||
@@ -109,9 +109,12 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
|
||||
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])
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user