Compare commits

..
8 Commits
Author SHA1 Message Date
Jason Frey e8621f0b86 Add printing of the lockfile after installation
Closes #783
2025-07-25 20:36:32 +02:00
Benoit Daloze bd6859cc58 Use core.group() instead of startGroup/endGroup 2025-07-25 20:25:02 +02:00
ruby-builder-bot 223e443f3e Update CRuby releases on Windows 2025-07-25 20:14:52 +02:00
ruby-builder-bot 65937904bc Add ruby-3.2.9,ruby-3.3.9 2025-07-24 21:16:37 +02:00
ruby-builder-bot a9bfc2ecf3 Add jruby-10.0.1.0 2025-07-21 22:45:43 +02:00
David Rodríguez 4727905401 Try also removing the other case where --force is used 2025-07-16 23:02:44 +02:00
David Rodríguez f66e1124dc Don't use --force flag on Windows
It was originally added by https://github.com/ruby/setup-ruby/pull/253,
in order to fix CI. However, now CI passes without it so I assume this
was fixed by rubyinstaller2.

Force actually bypasses dependency constraints so it's actually
installing the latest Bundler in a version of Ruby that's incompatible
with it.
2025-07-16 23:02:44 +02:00
David Rodríguez a0d08243d4 Add workaround for Ruby 3.1 after RubyGems 3.7.0 release 2025-07-16 23:02:44 +02:00
9 changed files with 69 additions and 47 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions |
| ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.5.0-preview1, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.0.0.1, head |
| `jruby` | 9.1.17.0 - 10.0.1.0, head |
| `truffleruby` | 19.3.0 - 24.2.1, head |
| `truffleruby+graalvm` | 21.2.0 - 24.2.1, head |
+1 -4
View File
@@ -137,14 +137,11 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
}
const gem = path.join(rubyPrefix, 'bin', 'gem')
// Workaround for https://github.com/rubygems/rubygems/issues/5245
// and for https://github.com/oracle/truffleruby/issues/2780
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`
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint])
return bundlerVersion
}
+14 -15
View File
@@ -360,24 +360,23 @@ export function setupPath(newPathEntries) {
const originalPath = process.env[envPath].split(path.delimiter)
let cleanPath = originalPath.filter(entry => !/\bruby\b/i.test(entry))
core.startGroup(`Modifying ${envPath}`)
// First remove the conflicting path entries
if (cleanPath.length !== originalPath.length) {
console.log(`Entries removed from ${envPath} to avoid conflicts with default Ruby:`)
for (const entry of originalPath) {
if (!cleanPath.includes(entry)) {
console.log(` ${entry}`)
core.group(`Modifying ${envPath}`, async () => {
// First remove the conflicting path entries
if (cleanPath.length !== originalPath.length) {
console.log(`Entries removed from ${envPath} to avoid conflicts with default Ruby:`)
for (const entry of originalPath) {
if (!cleanPath.includes(entry)) {
console.log(` ${entry}`)
}
}
core.exportVariable(envPath, cleanPath.join(path.delimiter))
}
core.exportVariable(envPath, cleanPath.join(path.delimiter))
}
console.log(`Entries added to ${envPath} to use selected Ruby:`)
for (const entry of newPathEntries) {
console.log(` ${entry}`)
}
core.endGroup()
console.log(`Entries added to ${envPath} to use selected Ruby:`)
for (const entry of newPathEntries) {
console.log(` ${entry}`)
}
})
core.addPath(newPathEntries.join(path.delimiter))
}
Generated Vendored
+24 -23
View File
File diff suppressed because one or more lines are too long
+3
View File
@@ -99,6 +99,9 @@ export async function setupRuby(options = {}) {
if (inputs['bundler-cache'] === 'true') {
await common.time('bundle install', async () =>
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
await core.group(`Print lockfile`, async () =>
await exec.exec('cat', [lockFile]))
}
core.setOutput('ruby-prefix', rubyPrefix)
+3 -3
View File
@@ -11,8 +11,8 @@
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7", "2.7.8",
"3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7",
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7",
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7", "3.2.8",
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7", "3.3.8",
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7", "3.2.8", "3.2.9",
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7", "3.3.8", "3.3.9",
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5",
"3.5.0-preview1",
"head", "debug", "asan", "3.4-asan"
@@ -22,7 +22,7 @@
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1", "9.2.21.0",
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0", "9.3.6.0", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0", "9.3.11.0", "9.3.13.0", "9.3.14.0", "9.3.15.0",
"9.4.0.0", "9.4.1.0", "9.4.2.0", "9.4.3.0", "9.4.4.0", "9.4.5.0", "9.4.6.0", "9.4.7.0", "9.4.8.0", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.0",
"10.0.0.0", "10.0.0.1",
"10.0.0.0", "10.0.0.1", "10.0.1.0",
"head"
],
"truffleruby": [
+3 -1
View File
@@ -39,8 +39,10 @@ async function rubygemsLatest(gem, platform, engine, rubyVersion) {
const floatVersion = common.floatVersion(rubyVersion)
if (common.isHeadVersion(rubyVersion)) {
console.log('Ruby master builds use included RubyGems')
} else if (floatVersion >= 3.1) {
} else if (floatVersion >= 3.2) {
await exec.exec(gem, ['update', '--system'])
} else if (floatVersion >= 3.1) {
await exec.exec(gem, ['update', '--system', '3.6.9'])
} else if (floatVersion >= 3.0) {
await exec.exec(gem, ['update', '--system', '3.5.23'])
} else if (floatVersion >= 2.6) {
+10
View File
@@ -203,6 +203,9 @@
"3.2.8": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
"3.2.9": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.3.0": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
@@ -230,6 +233,9 @@
"3.3.8": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
"3.3.9": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.4.1": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64-mingw-w64@r688.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
@@ -246,6 +252,10 @@
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.4.5": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"head": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
+10
View File
@@ -203,6 +203,9 @@
"3.2.8": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.8-1/rubyinstaller-3.2.8-1-x64.7z"
},
"3.2.9": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.9-1/rubyinstaller-3.2.9-1-x64.7z"
},
"3.3.0": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z"
},
@@ -230,6 +233,9 @@
"3.3.8": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.8-1/rubyinstaller-3.3.8-1-x64.7z"
},
"3.3.9": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.9-1/rubyinstaller-3.3.9-1-x64.7z"
},
"3.4.1": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-x64.7z"
@@ -246,6 +252,10 @@
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.4-2/rubyinstaller-3.4.4-2-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.4-2/rubyinstaller-3.4.4-2-x64.7z"
},
"3.4.5": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.5-1/rubyinstaller-3.4.5-1-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.5-1/rubyinstaller-3.4.5-1-x64.7z"
},
"head": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z"