From 655cb05195987cc98509c9d014293425433f2676 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 17 Jun 2020 19:37:01 +0200 Subject: [PATCH] Add comment explaining why the environment variable should be normalized --- dist/index.js | 4 ++++ src/installer.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/dist/index.js b/dist/index.js index 36a56bb..aed138a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4742,6 +4742,10 @@ function getJava(version, arch, jdkFile, javaPackage) { toolPath = yield tc.cacheDir(jdkDir, javaPackage, getCacheVersionString(version), arch); } let extendedJavaHome = 'JAVA_HOME_' + version + '_' + arch; + // For portability reasons environment variables should only consist of + // uppercase letters, digits, and the underscore. Therefore we convert + // the extendedJavaHome variable to upper case and replace '.' symbols and + // any other non-alphanumeric characters with an underscore. extendedJavaHome = extendedJavaHome.toUpperCase().replace(/[^0-9A-Z_]/g, '_'); core.exportVariable('JAVA_HOME', toolPath); core.exportVariable(extendedJavaHome, toolPath); diff --git a/src/installer.ts b/src/installer.ts index 7a8feae..29b0d89 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -87,6 +87,10 @@ export async function getJava( } let extendedJavaHome = 'JAVA_HOME_' + version + '_' + arch; + // For portability reasons environment variables should only consist of + // uppercase letters, digits, and the underscore. Therefore we convert + // the extendedJavaHome variable to upper case and replace '.' symbols and + // any other non-alphanumeric characters with an underscore. extendedJavaHome = extendedJavaHome.toUpperCase().replace(/[^0-9A-Z_]/g, '_'); core.exportVariable('JAVA_HOME', toolPath); core.exportVariable(extendedJavaHome, toolPath);