mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-14 06:54:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a68550f2e |
@@ -145,6 +145,28 @@ jobs:
|
|||||||
rubygems: 3.2.3
|
rubygems: 3.2.3
|
||||||
- run: gem --version | grep -F "3.3.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:
|
testExactBundlerVersion:
|
||||||
name: "Test with an exact Bundler version"
|
name: "Test with an exact Bundler version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ inputs:
|
|||||||
Defaults to 'default'.
|
Defaults to 'default'.
|
||||||
bundler:
|
bundler:
|
||||||
description: |
|
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.
|
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.
|
Defaults to 'Gemfile.lock' if the file exists and 'latest' otherwise.
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
+6
-3
@@ -65,8 +65,8 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
|
|||||||
bundlerVersion = '2'
|
bundlerVersion = '2'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^\d+/.test(bundlerVersion)) {
|
if (/^\d+(?:\.\d+){0,2}$/.test(bundlerVersion)) {
|
||||||
// OK
|
// OK - input is a 1, 2, or 3 part version number
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
|
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}`)
|
console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
|
||||||
} else {
|
} else {
|
||||||
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
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
|
// Workaround for https://github.com/rubygems/rubygems/issues/5245
|
||||||
const force = (platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) ? ['--force'] : []
|
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])
|
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-3
@@ -79,8 +79,8 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
|
|||||||
bundlerVersion = '2'
|
bundlerVersion = '2'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^\d+/.test(bundlerVersion)) {
|
if (/^\d+(?:\.\d+){0,2}$/.test(bundlerVersion)) {
|
||||||
// OK
|
// OK - input is a 1, 2, or 3 part version number
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
|
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}`)
|
console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
|
||||||
} else {
|
} else {
|
||||||
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
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
|
// Workaround for https://github.com/rubygems/rubygems/issues/5245
|
||||||
const force = (platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) ? ['--force'] : []
|
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])
|
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user