Compare commits

..
4 Commits
Author SHA1 Message Date
Benoit Daloze 93287a1fa8 Revert "Export BUNDLER_VERSION after installing Bundler"
* This reverts commit 3190662165.
* It causes other issues such as https://github.com/ruby/setup-ruby/issues/444
  due to creating additional global state.
* The use-case it solves is too niche to risk such issues,
  using `bundler-cache: true` avoids the problem.
* See https://github.com/ruby/setup-ruby/issues/444#issuecomment-1377723414
2023-01-10 20:17:22 +01:00
Benoit Daloze 3190662165 Export BUNDLER_VERSION after installing Bundler
* Fixes https://github.com/ruby/setup-ruby/issues/440
2023-01-06 12:50:46 +01:00
Benoit Daloze eb7f94ffae Consider Bundler pre and rc versions valid, just exclude .dev
* Fixes https://github.com/ruby/setup-ruby/issues/439
2023-01-06 12:49:10 +01:00
Benoit Daloze ad718faf7a Break long line in workflow 2022-12-30 15:59:58 +01:00
3 changed files with 31 additions and 10 deletions
+17 -1
View File
@@ -18,7 +18,12 @@ jobs:
fail-fast: false
matrix:
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04, macos-10.15, macos-11, macos-12, windows-2019, windows-2022 ]
ruby: [ '1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', ruby-head, jruby, jruby-head, truffleruby, truffleruby-head, truffleruby+graalvm, truffleruby+graalvm-head ]
ruby: [
'1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', ruby-head,
jruby, jruby-head,
truffleruby, truffleruby-head,
truffleruby+graalvm, truffleruby+graalvm-head
]
include:
- { os: windows-2019, ruby: mingw }
- { os: windows-2019, ruby: mswin }
@@ -239,6 +244,17 @@ jobs:
bundler: 2.2.3
- run: bundle --version | grep -F "Bundler version 2.2.3"
testBundlerPre:
name: "Test with a Bundler pre/rc version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./
with:
ruby-version: '2.6'
bundler: 2.2.0.rc.2
- run: bundle --version | grep -F "Bundler version 2.2.0.rc.2"
testBundlerDev:
name: "Test BUNDLED WITH Bundler dev"
runs-on: ubuntu-latest
+7 -4
View File
@@ -6,7 +6,10 @@ const cache = require('@actions/cache')
const common = require('./common')
export const DEFAULT_CACHE_VERSION = '0'
export const BUNDLER_VERSION_REGEXP = /^\d+(?:\.\d+){0,2}$/
function isValidBundlerVersion(bundlerVersion) {
return /^\d+(?:\.\d+){0,2}/.test(bundlerVersion) && !bundlerVersion.endsWith('.dev')
}
// The returned gemfile is guaranteed to exist, the lockfile might not exist
export function detectGemfiles() {
@@ -33,7 +36,7 @@ function readBundledWithFromGemfileLock(lockFile) {
const nextLine = lines[bundledWithLine+1]
if (nextLine) {
const bundlerVersion = nextLine.trim()
if (BUNDLER_VERSION_REGEXP.test(bundlerVersion)) {
if (isValidBundlerVersion(bundlerVersion)) {
console.log(`Using Bundler ${bundlerVersion} from ${lockFile} BUNDLED WITH ${bundlerVersion}`)
return bundlerVersion
} else {
@@ -100,7 +103,7 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
bundlerVersion = '2'
}
if (BUNDLER_VERSION_REGEXP.test(bundlerVersion)) {
if (isValidBundlerVersion(bundlerVersion)) {
// OK - input is a 1, 2, or 3 part version number
} else {
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
@@ -139,7 +142,7 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
const force = ((platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) || (engine === 'truffleruby')) ? ['--force'] : []
const versionParts = [...bundlerVersion.matchAll(/\d+/g)].length
const bundlerVersionConstraint = versionParts === 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
const bundlerVersionConstraint = versionParts >= 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
Generated Vendored
+7 -5
View File
@@ -8,7 +8,6 @@
__nccwpck_require__.r(__webpack_exports__);
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
/* harmony export */ "DEFAULT_CACHE_VERSION": () => (/* binding */ DEFAULT_CACHE_VERSION),
/* harmony export */ "BUNDLER_VERSION_REGEXP": () => (/* binding */ BUNDLER_VERSION_REGEXP),
/* harmony export */ "detectGemfiles": () => (/* binding */ detectGemfiles),
/* harmony export */ "installBundler": () => (/* binding */ installBundler),
/* harmony export */ "bundleInstall": () => (/* binding */ bundleInstall)
@@ -21,7 +20,10 @@ const cache = __nccwpck_require__(7799)
const common = __nccwpck_require__(4717)
const DEFAULT_CACHE_VERSION = '0'
const BUNDLER_VERSION_REGEXP = /^\d+(?:\.\d+){0,2}$/
function isValidBundlerVersion(bundlerVersion) {
return /^\d+(?:\.\d+){0,2}/.test(bundlerVersion) && !bundlerVersion.endsWith('.dev')
}
// The returned gemfile is guaranteed to exist, the lockfile might not exist
function detectGemfiles() {
@@ -48,7 +50,7 @@ function readBundledWithFromGemfileLock(lockFile) {
const nextLine = lines[bundledWithLine+1]
if (nextLine) {
const bundlerVersion = nextLine.trim()
if (BUNDLER_VERSION_REGEXP.test(bundlerVersion)) {
if (isValidBundlerVersion(bundlerVersion)) {
console.log(`Using Bundler ${bundlerVersion} from ${lockFile} BUNDLED WITH ${bundlerVersion}`)
return bundlerVersion
} else {
@@ -115,7 +117,7 @@ async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, p
bundlerVersion = '2'
}
if (BUNDLER_VERSION_REGEXP.test(bundlerVersion)) {
if (isValidBundlerVersion(bundlerVersion)) {
// OK - input is a 1, 2, or 3 part version number
} else {
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
@@ -154,7 +156,7 @@ async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, p
const force = ((platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) || (engine === 'truffleruby')) ? ['--force'] : []
const versionParts = [...bundlerVersion.matchAll(/\d+/g)].length
const bundlerVersionConstraint = versionParts === 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
const bundlerVersionConstraint = versionParts >= 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])