mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5daca16544 | ||
|
|
558057564b | ||
|
|
432702e864 | ||
|
|
b203567269 | ||
|
|
c6e5aea595 | ||
|
|
360dc864d5 | ||
|
|
251b9047a8 |
@@ -169,7 +169,7 @@ jobs:
|
||||
- run: ruby -v
|
||||
|
||||
testLatestRubygemsVersion:
|
||||
name: "Test rubygems: latest on Ruby ${{ matrix.ruby }}"
|
||||
name: "Test rubygems: latest on ${{ matrix.ruby }}"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -181,6 +181,7 @@ jobs:
|
||||
- { ruby: '2.6', expected_rubygems_version: '3.4.22' }
|
||||
- { ruby: '2.5', expected_rubygems_version: '3.3.27' }
|
||||
- { ruby: '2.3', expected_rubygems_version: '3.3.27' }
|
||||
- { ruby: '2.0', expected_rubygems_version: '2.7.11' }
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
@@ -334,6 +335,19 @@ jobs:
|
||||
bundler-cache: true
|
||||
- run: bundle list | grep nokogiri
|
||||
|
||||
testWindowsToolchain:
|
||||
name: "Test windows-toolchain: none"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.7'
|
||||
windows-toolchain: none
|
||||
bundler: none
|
||||
- name: C:/msys64/mingw64/bin/gcc.exe not installed
|
||||
run: ruby -e "abort if File.exist?('C:/msys64/mingw64/bin/gcc.exe')"
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
|
||||
@@ -17,8 +17,8 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
||||
| ----------- | -------- |
|
||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.3.0, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 9.4.5.0, head |
|
||||
| `truffleruby` | 19.3.0 - 23.1.1, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 23.1.1, head |
|
||||
| `truffleruby` | 19.3.0 - 23.1.2, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 23.1.2, head |
|
||||
|
||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||
|
||||
|
||||
+10
-1
@@ -13,7 +13,7 @@ inputs:
|
||||
The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5).
|
||||
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 compatible RubyGems version.
|
||||
Ruby head/master builds and Ruby 2.2 and earlier will not be updated.
|
||||
Ruby head/master builds will not be updated.
|
||||
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.
|
||||
bundler:
|
||||
description: |
|
||||
@@ -36,6 +36,15 @@ inputs:
|
||||
Consider the runner as a self-hosted runner, which means not using prebuilt Ruby binaries which only work
|
||||
on GitHub-hosted runners or self-hosted runners with a very similar image to the ones used by GitHub runners.
|
||||
The default is to detect this automatically based on the OS, OS version and architecture.
|
||||
windows-toolchain:
|
||||
description: |
|
||||
This input allows to override the default toolchain setup on Windows.
|
||||
The default setting ('default') installs a toolchain based on the selected Ruby.
|
||||
Specifically, it installs MSYS2 if not already there and installs mingw/ucrt/mswin build tools and packages.
|
||||
It also sets environment variables using 'ridk' or 'vcvars64.bat' based on the selected Ruby.
|
||||
At present, the only other setting than 'default' is 'none', which only adds Ruby to PATH.
|
||||
No build tools or packages are installed, nor are any ENV setting changed to activate them.
|
||||
|
||||
outputs:
|
||||
ruby-prefix:
|
||||
description: 'The prefix of the installed ruby'
|
||||
|
||||
@@ -341,7 +341,8 @@ export function setupPath(newPathEntries) {
|
||||
|
||||
// Then add new path entries using core.addPath()
|
||||
let newPath
|
||||
if (windows) {
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windows && windowsToolchain !== 'none') {
|
||||
// main Ruby dll determines whether mingw or ucrt build
|
||||
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
||||
|
||||
|
||||
+20
-4
@@ -701,7 +701,8 @@ function setupPath(newPathEntries) {
|
||||
|
||||
// Then add new path entries using core.addPath()
|
||||
let newPath
|
||||
if (windows) {
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windows && windowsToolchain !== 'none') {
|
||||
// main Ruby dll determines whether mingw or ucrt build
|
||||
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
||||
|
||||
@@ -65011,6 +65012,12 @@ async function install(platform, engine, version) {
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/oracle/truffleruby/issues/3390
|
||||
if (engine.startsWith('truffleruby') && common.floatVersion(version) >= 24.0 && !common.isSelfHostedRunner() && common.getOSNameVersionArch() === 'macos-12-x64') {
|
||||
console.log('Setting MACOSX_DEPLOYMENT_TARGET=11.0 to workaround bug in XCode 14.2 linker not respecting RTLD_LAZY, see https://github.com/oracle/truffleruby/issues/3390')
|
||||
core.exportVariable('MACOSX_DEPLOYMENT_TARGET', '11.0')
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
@@ -65133,6 +65140,9 @@ async function rubygemsLatest(gem, platform, engine, rubyVersion) {
|
||||
await exec.exec(gem, ['update', '--system', '3.4.22'])
|
||||
} else if (floatVersion >= 2.3) {
|
||||
await exec.exec(gem, ['update', '--system', '3.3.27'])
|
||||
} else if (floatVersion >= 1.9) {
|
||||
await exec.exec(`${gem} install rubygems-update -v 2.7.11 --no-document`)
|
||||
await exec.exec('update_rubygems')
|
||||
} else {
|
||||
console.log(`Cannot update RubyGems for Ruby version ${rubyVersion}`)
|
||||
}
|
||||
@@ -65223,12 +65233,17 @@ async function install(platform, engine, version) {
|
||||
rubyPrefix = `${drive}:\\${base}`
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
|
||||
if (!inToolCache) {
|
||||
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
||||
}
|
||||
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windowsToolchain === 'none') {
|
||||
common.setupPath([`${rubyPrefix}\\bin`])
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
||||
|
||||
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
||||
@@ -65633,7 +65648,7 @@ module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"]
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = JSON.parse('{"ruby":["1.9.3-p551","2.0.0-p648","2.1.9","2.2.10","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.9","2.4.10","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.5.8","2.5.9","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.6.10","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.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","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.3.0-preview1","3.3.0-preview2","3.3.0-preview3","3.3.0-rc1","3.3.0","head","debug"],"jruby":["9.1.17.0","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.4.0.0","9.4.1.0","9.4.2.0","9.4.3.0","9.4.4.0","9.4.5.0","head"],"truffleruby":["19.3.0","19.3.1","20.0.0","20.1.0","20.2.0","20.3.0","21.0.0","21.1.0","21.2.0","21.2.0.1","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","23.0.0-preview1","23.0.0","23.1.0","23.1.1","head"],"truffleruby+graalvm":["21.2.0","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","23.0.0-preview1","23.0.0","23.1.0","23.1.1","head"]}');
|
||||
module.exports = JSON.parse('{"ruby":["1.9.3-p551","2.0.0-p648","2.1.9","2.2.10","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.9","2.4.10","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.5.8","2.5.9","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.6.10","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.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","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.3.0-preview1","3.3.0-preview2","3.3.0-preview3","3.3.0-rc1","3.3.0","head","debug"],"jruby":["9.1.17.0","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.4.0.0","9.4.1.0","9.4.2.0","9.4.3.0","9.4.4.0","9.4.5.0","head"],"truffleruby":["19.3.0","19.3.1","20.0.0","20.1.0","20.2.0","20.3.0","21.0.0","21.1.0","21.2.0","21.2.0.1","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","head"],"truffleruby+graalvm":["21.2.0","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","head"]}');
|
||||
|
||||
/***/ }),
|
||||
|
||||
@@ -65739,6 +65754,7 @@ const inputDefaults = {
|
||||
'working-directory': '.',
|
||||
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
||||
'self-hosted': 'false',
|
||||
'windows-toolchain': 'default',
|
||||
}
|
||||
|
||||
// entry point when this action is run on its own
|
||||
|
||||
@@ -17,6 +17,7 @@ const inputDefaults = {
|
||||
'working-directory': '.',
|
||||
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
||||
'self-hosted': 'false',
|
||||
'windows-toolchain': 'default',
|
||||
}
|
||||
|
||||
// entry point when this action is run on its own
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"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.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.4",
|
||||
"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.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.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0",
|
||||
"head", "debug"
|
||||
],
|
||||
@@ -27,13 +27,13 @@
|
||||
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
||||
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||
"head"
|
||||
],
|
||||
"truffleruby+graalvm": [
|
||||
"21.2.0", "21.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||
"head"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -58,6 +58,12 @@ export async function install(platform, engine, version) {
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/oracle/truffleruby/issues/3390
|
||||
if (engine.startsWith('truffleruby') && common.floatVersion(version) >= 24.0 && !common.isSelfHostedRunner() && common.getOSNameVersionArch() === 'macos-12-x64') {
|
||||
console.log('Setting MACOSX_DEPLOYMENT_TARGET=11.0 to workaround bug in XCode 14.2 linker not respecting RTLD_LAZY, see https://github.com/oracle/truffleruby/issues/3390')
|
||||
core.exportVariable('MACOSX_DEPLOYMENT_TARGET', '11.0')
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,9 @@ async function rubygemsLatest(gem, platform, engine, rubyVersion) {
|
||||
await exec.exec(gem, ['update', '--system', '3.4.22'])
|
||||
} else if (floatVersion >= 2.3) {
|
||||
await exec.exec(gem, ['update', '--system', '3.3.27'])
|
||||
} else if (floatVersion >= 1.9) {
|
||||
await exec.exec(`${gem} install rubygems-update -v 2.7.11 --no-document`)
|
||||
await exec.exec('update_rubygems')
|
||||
} else {
|
||||
console.log(`Cannot update RubyGems for Ruby version ${rubyVersion}`)
|
||||
}
|
||||
|
||||
+7
-2
@@ -65,12 +65,17 @@ export async function install(platform, engine, version) {
|
||||
rubyPrefix = `${drive}:\\${base}`
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
|
||||
if (!inToolCache) {
|
||||
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
||||
}
|
||||
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windowsToolchain === 'none') {
|
||||
common.setupPath([`${rubyPrefix}\\bin`])
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
||||
|
||||
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
||||
|
||||
Reference in New Issue
Block a user