diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index 971673a5..0bdc0310 100644 --- a/dist/cleanup/index.js +++ b/dist/cleanup/index.js @@ -87887,9 +87887,15 @@ function isCacheFeatureAvailable() { return false; } exports.isCacheFeatureAvailable = isCacheFeatureAvailable; -function getVersionFromFileContent(content, distributionName) { +function getVersionFromFileContent(content, distributionName, versionFile) { var _a, _b, _c, _d, _e; - const javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + let javaVersionRegExp; + if (versionFile == '.tool-versions') { + javaVersionRegExp = /^java\s+(?:\S+-)?v?(?[^\s]+)$/m; + } + else { + javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + } const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version) ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version : ''; diff --git a/dist/setup/index.js b/dist/setup/index.js index f8c70dab..2936d56d 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -124907,7 +124907,7 @@ function run() { if (!versions.length) { core.debug('java-version input is empty, looking for java-version-file input'); const content = fs_1.default.readFileSync(versionFile).toString().trim(); - const version = (0, util_1.getVersionFromFileContent)(content, distributionName); + const version = (0, util_1.getVersionFromFileContent)(content, distributionName, versionFile); core.debug(`Parsed version from file '${version}'`); if (!version) { throw new Error(`No supported version was found in file ${versionFile}`); @@ -125261,9 +125261,15 @@ function isCacheFeatureAvailable() { return false; } exports.isCacheFeatureAvailable = isCacheFeatureAvailable; -function getVersionFromFileContent(content, distributionName) { +function getVersionFromFileContent(content, distributionName, versionFile) { var _a, _b, _c, _d, _e; - const javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + let javaVersionRegExp; + if (versionFile == '.tool-versions') { + javaVersionRegExp = /^java\s+(?:\S+-)?v?(?[^\s]+)$/m; + } + else { + javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + } const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version) ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version : ''; diff --git a/src/setup-java.ts b/src/setup-java.ts index 35a315df..73baf33a 100644 --- a/src/setup-java.ts +++ b/src/setup-java.ts @@ -55,7 +55,11 @@ async function run() { ); const content = fs.readFileSync(versionFile).toString().trim(); - const version = getVersionFromFileContent(content, distributionName); + const version = getVersionFromFileContent( + content, + distributionName, + versionFile + ); core.debug(`Parsed version from file '${version}'`); if (!version) { diff --git a/src/util.ts b/src/util.ts index 94be2347..a4c77faa 100644 --- a/src/util.ts +++ b/src/util.ts @@ -115,9 +115,16 @@ export function isCacheFeatureAvailable(): boolean { export function getVersionFromFileContent( content: string, - distributionName: string + distributionName: string, + versionFile: string ): string | null { - const javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + let javaVersionRegExp: RegExp; + if (versionFile == '.tool-versions') { + javaVersionRegExp = /^java\s+(?:\S+-)?v?(?[^\s]+)$/m; + } else { + javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; + } + const fileContent = content.match(javaVersionRegExp)?.groups?.version ? (content.match(javaVersionRegExp)?.groups?.version as string) : '';