Merge remote-tracking branch 'origin/main' into brunoborges-support-java-version-latest

# Conflicts:
#	__tests__/distributors/base-installer.test.ts
This commit is contained in:
Bruno Borges
2026-07-09 17:13:41 -04:00
5 changed files with 146 additions and 1 deletions

View File

@@ -4,7 +4,11 @@ import * as fs from 'fs';
import semver from 'semver';
import path from 'path';
import * as httpm from '@actions/http-client';
import {getToolcachePath, isVersionSatisfies} from '../util.js';
import {
convertVersionToSemver,
getToolcachePath,
isVersionSatisfies
} from '../util.js';
import {
JavaDownloadRelease,
JavaInstallerOptions,
@@ -288,6 +292,15 @@ export abstract class JavaBase {
stable = false;
}
// Java uses a versioning scheme (JEP 322) that can contain more numeric
// fields than SemVer allows, e.g. '18.0.1.1' or '11.0.9.1'. Convert such
// exact versions to SemVer build notation ('18.0.1+1') so they are
// accepted. Ranges and versions that already carry build metadata are
// left untouched.
if (/^\d+(\.\d+){3,}$/.test(version)) {
version = convertVersionToSemver(version);
}
if (!semver.validRange(version)) {
throw new Error(
`The string '${version}' is not valid SemVer notation for a Java version. Please check README file for code snippets and more detailed information`