diff --git a/lib/manager/bundler/artifacts.js b/lib/manager/bundler/artifacts.js index b1fd943d00996135bac50e38e62c45966abf59b2..8b2dfdec45f374c0f32cdc513c40ce921f5aa89b 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