diff --git a/src/distributions/base-installer.ts b/src/distributions/base-installer.ts index b073be8f..46cecfb6 100644 --- a/src/distributions/base-installer.ts +++ b/src/distributions/base-installer.ts @@ -324,18 +324,23 @@ export abstract class JavaBase { } protected getJdkCachePath(version: string): string { + const toolCache = process.env['RUNNER_TOOL_CACHE']; + if (!toolCache) { + return ''; + } return path.join( - process.env['RUNNER_TOOL_CACHE'] ?? '', + toolCache, this.toolcacheFolderName, this.getToolcacheVersionName(version) ); } protected getRestoredJdkPath(version: string): string | null { - const architecturePath = path.join( - this.getJdkCachePath(version), - this.architecture - ); + const basePath = this.getJdkCachePath(version); + if (!basePath) { + return null; + } + const architecturePath = path.join(basePath, this.architecture); return fs.existsSync(architecturePath) && fs.existsSync(`${architecturePath}.complete`) ? architecturePath diff --git a/src/jdk-cache.ts b/src/jdk-cache.ts index ae305c2e..137eacbc 100644 --- a/src/jdk-cache.ts +++ b/src/jdk-cache.ts @@ -99,18 +99,20 @@ export async function saveJdkCaches(): Promise { } export function buildJdkCacheKey(jdk: JdkCache): string { + const runnerOs = process.env['RUNNER_OS'] ?? process.platform; + const normalizedArchitecture = jdk.architecture.toLowerCase(); const identity = JSON.stringify({ keyVersion: JDK_CACHE_KEY_VERSION, - runnerOs: process.env['RUNNER_OS'] ?? process.platform, + runnerOs, platform: process.platform, distribution: jdk.distribution.toLowerCase(), packageType: jdk.packageType.toLowerCase(), - architecture: jdk.architecture.toLowerCase(), + architecture: normalizedArchitecture, version: jdk.version, source: jdk.source }); const digest = createHash('sha256').update(identity).digest('hex'); - return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${process.env['RUNNER_OS'] ?? process.platform}-${jdk.architecture}-${digest}`; + return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${runnerOs}-${normalizedArchitecture}-${digest}`; } function parseJdkCacheState(state: string): JdkCacheState[] {