mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a615958ad | ||
|
|
922ebc4c52 | ||
|
|
6c79f721fa | ||
|
|
e17c5ea7eb | ||
|
|
f0a4d6bddd |
@@ -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.4.2, head, debug, mingw, mswin, ucrt |
|
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.4.2, head, debug, mingw, mswin, ucrt |
|
||||||
| `jruby` | 9.1.17.0 - 9.4.12.0, head |
|
| `jruby` | 9.1.17.0 - 9.4.12.0, head |
|
||||||
| `truffleruby` | 19.3.0 - 24.1.2, head |
|
| `truffleruby` | 19.3.0 - 24.2.0, head |
|
||||||
| `truffleruby+graalvm` | 21.2.0 - 24.1.2, head |
|
| `truffleruby+graalvm` | 21.2.0 - 24.2.0, head |
|
||||||
|
|
||||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const stream = require('stream')
|
|||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const core = require('@actions/core')
|
const core = require('@actions/core')
|
||||||
const tc = require('@actions/tool-cache')
|
const tc = require('@actions/tool-cache')
|
||||||
|
const exec = require('@actions/exec')
|
||||||
const { performance } = require('perf_hooks')
|
const { performance } = require('perf_hooks')
|
||||||
const linuxOSInfo = require('linux-os-info')
|
const linuxOSInfo = require('linux-os-info')
|
||||||
|
|
||||||
@@ -403,3 +404,35 @@ export function setupPath(newPathEntries) {
|
|||||||
core.addPath(newPath.join(path.delimiter))
|
core.addPath(newPath.join(path.delimiter))
|
||||||
return msys2Type
|
return msys2Type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function setupJavaHome(rubyPrefix) {
|
||||||
|
await measure("Modifying JAVA_HOME for JRuby", async () => {
|
||||||
|
console.log("attempting to run with existing JAVA_HOME")
|
||||||
|
|
||||||
|
const javaHome = process.env['JAVA_HOME']
|
||||||
|
let java = javaHome ? path.join(javaHome, 'bin/java') : 'java'
|
||||||
|
let ret = await exec.exec(java, ['-jar', path.join(rubyPrefix, 'lib/jruby.jar'), '--version'], {ignoreReturnCode: true})
|
||||||
|
|
||||||
|
if (ret === 0) {
|
||||||
|
console.log("JRuby successfully starts, using existing JAVA_HOME")
|
||||||
|
} else {
|
||||||
|
console.log("JRuby failed to start, try Java 21 envs")
|
||||||
|
|
||||||
|
let arch = os.arch()
|
||||||
|
if (arch === "x64" || os.platform() !== "darwin") {
|
||||||
|
arch = "X64"
|
||||||
|
}
|
||||||
|
|
||||||
|
let newHomeVar = `JAVA_HOME_21_${arch}`
|
||||||
|
let newHome = process.env[newHomeVar]
|
||||||
|
|
||||||
|
if (newHome === "undefined") {
|
||||||
|
throw new Error(`JAVA_HOME is not Java 21+ needed for JRuby and \$${newHomeVar} is not defined`)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`Setting JAVA_HOME to ${newHomeVar} path ${newHome}`)
|
||||||
|
|
||||||
|
core.exportVariable("JAVA_HOME", newHome)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
+41
-2
@@ -315,7 +315,8 @@ __nccwpck_require__.r(__webpack_exports__);
|
|||||||
/* harmony export */ "toolCacheCompleteFile": () => (/* binding */ toolCacheCompleteFile),
|
/* harmony export */ "toolCacheCompleteFile": () => (/* binding */ toolCacheCompleteFile),
|
||||||
/* harmony export */ "createToolCacheCompleteFile": () => (/* binding */ createToolCacheCompleteFile),
|
/* harmony export */ "createToolCacheCompleteFile": () => (/* binding */ createToolCacheCompleteFile),
|
||||||
/* harmony export */ "win2nix": () => (/* binding */ win2nix),
|
/* harmony export */ "win2nix": () => (/* binding */ win2nix),
|
||||||
/* harmony export */ "setupPath": () => (/* binding */ setupPath)
|
/* harmony export */ "setupPath": () => (/* binding */ setupPath),
|
||||||
|
/* harmony export */ "setupJavaHome": () => (/* binding */ setupJavaHome)
|
||||||
/* harmony export */ });
|
/* harmony export */ });
|
||||||
const os = __nccwpck_require__(2037)
|
const os = __nccwpck_require__(2037)
|
||||||
const path = __nccwpck_require__(1017)
|
const path = __nccwpck_require__(1017)
|
||||||
@@ -325,6 +326,7 @@ const stream = __nccwpck_require__(2781)
|
|||||||
const crypto = __nccwpck_require__(6113)
|
const crypto = __nccwpck_require__(6113)
|
||||||
const core = __nccwpck_require__(2186)
|
const core = __nccwpck_require__(2186)
|
||||||
const tc = __nccwpck_require__(7784)
|
const tc = __nccwpck_require__(7784)
|
||||||
|
const exec = __nccwpck_require__(1514)
|
||||||
const { performance } = __nccwpck_require__(4074)
|
const { performance } = __nccwpck_require__(4074)
|
||||||
const linuxOSInfo = __nccwpck_require__(8487)
|
const linuxOSInfo = __nccwpck_require__(8487)
|
||||||
|
|
||||||
@@ -723,6 +725,38 @@ function setupPath(newPathEntries) {
|
|||||||
return msys2Type
|
return msys2Type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function setupJavaHome(rubyPrefix) {
|
||||||
|
await measure("Modifying JAVA_HOME for JRuby", async () => {
|
||||||
|
console.log("attempting to run with existing JAVA_HOME")
|
||||||
|
|
||||||
|
const javaHome = process.env['JAVA_HOME']
|
||||||
|
let java = javaHome ? path.join(javaHome, 'bin/java') : 'java'
|
||||||
|
let ret = await exec.exec(java, ['-jar', path.join(rubyPrefix, 'lib/jruby.jar'), '--version'], {ignoreReturnCode: true})
|
||||||
|
|
||||||
|
if (ret === 0) {
|
||||||
|
console.log("JRuby successfully starts, using existing JAVA_HOME")
|
||||||
|
} else {
|
||||||
|
console.log("JRuby failed to start, try Java 21 envs")
|
||||||
|
|
||||||
|
let arch = os.arch()
|
||||||
|
if (arch === "x64" || os.platform() !== "darwin") {
|
||||||
|
arch = "X64"
|
||||||
|
}
|
||||||
|
|
||||||
|
let newHomeVar = `JAVA_HOME_21_${arch}`
|
||||||
|
let newHome = process.env[newHomeVar]
|
||||||
|
|
||||||
|
if (newHome === "undefined") {
|
||||||
|
throw new Error(`JAVA_HOME is not Java 21+ needed for JRuby and \$${newHomeVar} is not defined`)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`Setting JAVA_HOME to ${newHomeVar} path ${newHome}`)
|
||||||
|
|
||||||
|
core.exportVariable("JAVA_HOME", newHome)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -74057,6 +74091,11 @@ async function install(platform, engine, version) {
|
|||||||
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure JRuby has minimum Java version to run
|
||||||
|
if (engine === "jruby") {
|
||||||
|
await common.setupJavaHome(rubyPrefix)
|
||||||
|
}
|
||||||
|
|
||||||
return rubyPrefix
|
return rubyPrefix
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74714,7 +74753,7 @@ module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"]
|
|||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
"use strict";
|
"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.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.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.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.4.0-preview1","3.4.0-preview2","3.4.0-rc1","3.4.0","3.4.1","3.4.2","head","debug","asan","3.4-asan"],"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.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","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","24.0.0","24.0.1","24.0.2","24.1.0","24.1.1","24.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","24.0.0","24.0.1","24.0.2","24.1.0","24.1.1","24.1.2","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.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.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.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.4.0-preview1","3.4.0-preview2","3.4.0-rc1","3.4.0","3.4.1","3.4.2","head","debug","asan","3.4-asan"],"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.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","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","24.0.0","24.0.1","24.0.2","24.1.0","24.1.1","24.1.2","24.2.0","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","24.0.0","24.0.1","24.0.2","24.1.0","24.1.1","24.1.2","24.2.0","head"]}');
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
|||||||
@@ -29,14 +29,14 @@
|
|||||||
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.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",
|
"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",
|
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||||
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2",
|
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2", "24.2.0",
|
||||||
"head"
|
"head"
|
||||||
],
|
],
|
||||||
"truffleruby+graalvm": [
|
"truffleruby+graalvm": [
|
||||||
"21.2.0", "21.3.0",
|
"21.2.0", "21.3.0",
|
||||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
"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",
|
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||||
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2",
|
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2", "24.2.0",
|
||||||
"head"
|
"head"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,11 @@ export async function install(platform, engine, version) {
|
|||||||
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure JRuby has minimum Java version to run
|
||||||
|
if (engine === "jruby") {
|
||||||
|
await common.setupJavaHome(rubyPrefix)
|
||||||
|
}
|
||||||
|
|
||||||
return rubyPrefix
|
return rubyPrefix
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user