From 6c79f721fa26dd64559c2700086ac852c18e0756 Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Thu, 13 Mar 2025 13:53:47 -0500 Subject: [PATCH] Test successful JRuby start without using launcher Native launcher appears to hang on GHA when the JDK version is too old for JRuby 10. This bypasses it and should be a bit lighter. It will also avoid any variability in the launcher used, since Unixes and Windows already use different executables. --- common.js | 4 ++-- dist/index.js | 6 +++--- ruby-builder.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/common.js b/common.js index c8b8614..153af3d 100644 --- a/common.js +++ b/common.js @@ -405,11 +405,11 @@ export function setupPath(newPathEntries) { return msys2Type } -export async function setupJavaHome() { +export async function setupJavaHome(rubyPrefix) { await measure("Modifying JAVA_HOME for JRuby", async () => { console.log("attempting to run with existing JAVA_HOME") - let ret = await exec.exec('ruby', ['--version'], {ignoreReturnCode: true}) + 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") diff --git a/dist/index.js b/dist/index.js index a657f40..3777b30 100644 --- a/dist/index.js +++ b/dist/index.js @@ -725,11 +725,11 @@ function setupPath(newPathEntries) { return msys2Type } -async function setupJavaHome() { +async function setupJavaHome(rubyPrefix) { await measure("Modifying JAVA_HOME for JRuby", async () => { console.log("attempting to run with existing JAVA_HOME") - let ret = await exec.exec('ruby', ['--version'], {ignoreReturnCode: true}) + 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") @@ -74091,7 +74091,7 @@ async function install(platform, engine, version) { // Ensure JRuby has minimum Java version to run if (engine === "jruby") { - await common.setupJavaHome() + await common.setupJavaHome(rubyPrefix) } return rubyPrefix diff --git a/ruby-builder.js b/ruby-builder.js index 6ec7e19..ad8682e 100644 --- a/ruby-builder.js +++ b/ruby-builder.js @@ -56,7 +56,7 @@ export async function install(platform, engine, version) { // Ensure JRuby has minimum Java version to run if (engine === "jruby") { - await common.setupJavaHome() + await common.setupJavaHome(rubyPrefix) } return rubyPrefix