mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Do not install Bundler if RubyGems was updated
* Updating RubyGems will install Bundler as a side effect. * Fixes https://github.com/ruby/setup-ruby/issues/326
This commit is contained in:
+2
-1
@@ -15,7 +15,8 @@ inputs:
|
||||
For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used.
|
||||
For 'latest', `gem update --system` is run to update to the latest RubyGems version.
|
||||
Similarly, if a version number is given, `gem update --system <version>` is run to update to that version of RubyGems, as long as that version is newer than the one provided by default.
|
||||
Defaults to 'default'.
|
||||
required: false
|
||||
default: 'default'
|
||||
bundler:
|
||||
description: |
|
||||
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1, 2.1.4).
|
||||
|
||||
+6
-1
@@ -50,9 +50,14 @@ async function afterLockFile(lockFile, platform, engine, rubyVersion) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||
export async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||
let bundlerVersion = bundlerVersionInput
|
||||
|
||||
if (rubygemsInputSet && bundlerVersion === 'default') {
|
||||
console.log('Using the Bundler installed by updating RubyGems')
|
||||
return 'unknown'
|
||||
}
|
||||
|
||||
if (bundlerVersion === 'default' || bundlerVersion === 'Gemfile.lock') {
|
||||
bundlerVersion = readBundledWithFromGemfileLock(lockFile)
|
||||
|
||||
|
||||
+10
-4
@@ -64,9 +64,14 @@ async function afterLockFile(lockFile, platform, engine, rubyVersion) {
|
||||
}
|
||||
}
|
||||
|
||||
async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||
async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||
let bundlerVersion = bundlerVersionInput
|
||||
|
||||
if (rubygemsInputSet && bundlerVersion === 'default') {
|
||||
console.log('Using the Bundler installed by updating RubyGems')
|
||||
return 'unknown'
|
||||
}
|
||||
|
||||
if (bundlerVersion === 'default' || bundlerVersion === 'Gemfile.lock') {
|
||||
bundlerVersion = readBundledWithFromGemfileLock(lockFile)
|
||||
|
||||
@@ -60882,7 +60887,8 @@ async function setupRuby(options = {}) {
|
||||
await common.measure('Print Ruby version', async () =>
|
||||
await exec.exec('ruby', ['--version']))
|
||||
|
||||
if (inputs['rubygems'] !== 'default') {
|
||||
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
||||
if (rubygemsInputSet) {
|
||||
await common.measure('Updating RubyGems', async () =>
|
||||
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||
}
|
||||
@@ -60895,11 +60901,11 @@ async function setupRuby(options = {}) {
|
||||
}
|
||||
|
||||
const [gemfile, lockFile] = bundler.detectGemfiles()
|
||||
let bundlerVersion = "unknown"
|
||||
let bundlerVersion = 'unknown'
|
||||
|
||||
if (inputs['bundler'] !== 'none') {
|
||||
bundlerVersion = await common.measure('Installing Bundler', async () =>
|
||||
bundler.installBundler(inputs['bundler'], lockFile, platform, rubyPrefix, engine, version))
|
||||
bundler.installBundler(inputs['bundler'], rubygemsInputSet, lockFile, platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
if (inputs['bundler-cache'] === 'true') {
|
||||
|
||||
@@ -66,7 +66,8 @@ export async function setupRuby(options = {}) {
|
||||
await common.measure('Print Ruby version', async () =>
|
||||
await exec.exec('ruby', ['--version']))
|
||||
|
||||
if (inputs['rubygems'] !== 'default') {
|
||||
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
||||
if (rubygemsInputSet) {
|
||||
await common.measure('Updating RubyGems', async () =>
|
||||
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||
}
|
||||
@@ -79,11 +80,11 @@ export async function setupRuby(options = {}) {
|
||||
}
|
||||
|
||||
const [gemfile, lockFile] = bundler.detectGemfiles()
|
||||
let bundlerVersion = "unknown"
|
||||
let bundlerVersion = 'unknown'
|
||||
|
||||
if (inputs['bundler'] !== 'none') {
|
||||
bundlerVersion = await common.measure('Installing Bundler', async () =>
|
||||
bundler.installBundler(inputs['bundler'], lockFile, platform, rubyPrefix, engine, version))
|
||||
bundler.installBundler(inputs['bundler'], rubygemsInputSet, lockFile, platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
if (inputs['bundler-cache'] === 'true') {
|
||||
|
||||
Reference in New Issue
Block a user