mirror of
https://github.com/actions/setup-java.git
synced 2026-11-14 07:52:24 +00:00
Architecture validation for JDK file installs (#1324)
* Enhance architecture validation and error handling * Improve architecture normalization and validation for custom tokens * Refactor architecture validation to consolidate error handling for invalid tokens
This commit is contained in:
@@ -192,6 +192,9 @@ const CANONICAL_ARCHITECTURES: readonly JavaArchitecture[] = [
|
||||
's390x'
|
||||
];
|
||||
|
||||
// Used in environment-variable names and tool-cache paths.
|
||||
const ARCHITECTURE_TOKEN = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
||||
|
||||
const PLATFORM_ALIASES: Readonly<
|
||||
Partial<Record<NodeJS.Platform, JavaPlatform>>
|
||||
> = {
|
||||
@@ -204,14 +207,27 @@ const PLATFORM_ALIASES: Readonly<
|
||||
export function normalizeArchitecture(architecture: string): string {
|
||||
const trimmedArchitecture = architecture.trim();
|
||||
const normalizedArchitecture = trimmedArchitecture.toLowerCase();
|
||||
return (
|
||||
ARCHITECTURE_ALIASES[normalizedArchitecture] ??
|
||||
const alias = Object.prototype.hasOwnProperty.call(
|
||||
ARCHITECTURE_ALIASES,
|
||||
normalizedArchitecture
|
||||
)
|
||||
? ARCHITECTURE_ALIASES[normalizedArchitecture]
|
||||
: undefined;
|
||||
const result =
|
||||
alias ??
|
||||
(CANONICAL_ARCHITECTURES.includes(
|
||||
normalizedArchitecture as JavaArchitecture
|
||||
)
|
||||
? normalizedArchitecture
|
||||
: trimmedArchitecture)
|
||||
);
|
||||
: trimmedArchitecture);
|
||||
|
||||
if (!ARCHITECTURE_TOKEN.test(result)) {
|
||||
throw new Error(
|
||||
`Unsupported architecture value: ${JSON.stringify(architecture)}`
|
||||
);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export function normalizePlatform(
|
||||
|
||||
Reference in New Issue
Block a user