From 26f2aa47d343cd84163cc10fbd335786818c7a17 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 13 May 2019 11:54:18 +0200 Subject: [PATCH] fix(bundler): detect ruby constraint from Gemfile first --- lib/manager/bundler/artifacts.js | 37 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/manager/bundler/artifacts.js b/lib/manager/bundler/artifacts.js index b1fd943d00..8b2dfdec45 100644 --- a/lib/manager/bundler/artifacts.js +++ b/lib/manager/bundler/artifacts.js @@ -62,23 +62,26 @@ async function getArtifacts( logger.info('Running bundler via docker'); let tag = 'latest'; let rubyConstraint; - const rubyVersionFile = upath.join( - upath.dirname(packageFileName), - '.ruby-version' - ); - logger.debug('Checking ' + rubyVersionFile); - const rubyVersionFileContent = await platform.getFile(rubyVersionFile); - if (rubyVersionFileContent) { - logger.debug('Using ruby version specified in .ruby-version'); - rubyConstraint = rubyVersionFileContent.replace(/\n/g, '').trim(); + if (config && config.compatibility && config.compatibility.ruby) { + logger.debug('Using rubyConstraint from config'); + rubyConstraint = config.compatibility.ruby; } else { - rubyConstraint = - config && config.compatibility && config.compatibility.ruby - ? config.compatibility.ruby - : undefined; + const rubyVersionFile = upath.join( + upath.dirname(packageFileName), + '.ruby-version' + ); + logger.debug('Checking ' + rubyVersionFile); + const rubyVersionFileContent = await platform.getFile(rubyVersionFile); + if (rubyVersionFileContent) { + logger.debug('Using ruby version specified in .ruby-version'); + rubyConstraint = rubyVersionFileContent + .replace(/^ruby-/, '') + .replace(/\n/g, '') + .trim(); + } } if (rubyConstraint && isValid(rubyConstraint)) { - logger.debug('Found ruby compatibility'); + logger.debug({ rubyConstraint }, 'Found ruby compatibility'); const rubyReleases = await getPkgReleases({ lookupName: 'renovate/ruby', }); @@ -93,6 +96,12 @@ async function getArtifacts( tag = versions.pop(); } } + if (tag === 'latest') { + logger.warn( + { rubyConstraint }, + 'Failed to find a tag satisfying ruby constraint, using latest ruby image instead' + ); + } } const bundlerConstraint = config && config.compatibility && config.compatibility.bundler -- GitLab