diff --git a/dist/setup/index.js b/dist/setup/index.js index 916f488..f8c70da 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -123685,9 +123685,15 @@ class LibericaDistributions extends base_installer_1.JavaBase { downloadTool(javaRelease) { return __awaiter(this, void 0, void 0, function* () { core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); + let javaArchivePath = yield tc.downloadTool(javaRelease.url); core.info(`Extracting Java archive...`); const extension = (0, util_1.getDownloadArchiveExtension)(); + if (process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64')) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + yield fs_1.default.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } const extractedJavaPath = yield (0, util_1.extractJdkFile)(javaArchivePath, extension); const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; const archivePath = path_1.default.join(extractedJavaPath, archiveName); @@ -123967,7 +123973,18 @@ class MicrosoftDistributions extends base_installer_1.JavaBase { downloadTool(javaRelease) { return __awaiter(this, void 0, void 0, function* () { core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); + let javaArchivePath = yield tc.downloadTool(javaRelease.url); + // Rename archive to add extension because after downloading + // archive does not contain extension type and it leads to some issues + // on Windows runners without PowerShell Core. + // + // For default PowerShell Windows it should contain extension type to unpack it. + if (process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64')) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + yield fs_1.default.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } core.info(`Extracting Java archive...`); const extension = (0, util_1.getDownloadArchiveExtension)(); const extractedJavaPath = yield (0, util_1.extractJdkFile)(javaArchivePath, extension); @@ -124635,9 +124652,15 @@ class ZuluDistribution extends base_installer_1.JavaBase { downloadTool(javaRelease) { return __awaiter(this, void 0, void 0, function* () { core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`); - const javaArchivePath = yield tc.downloadTool(javaRelease.url); + let javaArchivePath = yield tc.downloadTool(javaRelease.url); core.info(`Extracting Java archive...`); const extension = (0, util_1.getDownloadArchiveExtension)(); + if (process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64')) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + yield fs_1.default.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } const extractedJavaPath = yield (0, util_1.extractJdkFile)(javaArchivePath, extension); const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0]; const archivePath = path_1.default.join(extractedJavaPath, archiveName); diff --git a/src/distributions/liberica/installer.ts b/src/distributions/liberica/installer.ts index 313f29e..3ed9435 100644 --- a/src/distributions/liberica/installer.ts +++ b/src/distributions/liberica/installer.ts @@ -31,10 +31,18 @@ export class LibericaDistributions extends JavaBase { core.info( `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` ); - const javaArchivePath = await tc.downloadTool(javaRelease.url); + let javaArchivePath = await tc.downloadTool(javaRelease.url); core.info(`Extracting Java archive...`); const extension = getDownloadArchiveExtension(); + if ( + process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64') + ) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + await fs.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); const archiveName = fs.readdirSync(extractedJavaPath)[0]; diff --git a/src/distributions/microsoft/installer.ts b/src/distributions/microsoft/installer.ts index 6feafab..d20e55d 100644 --- a/src/distributions/microsoft/installer.ts +++ b/src/distributions/microsoft/installer.ts @@ -26,7 +26,20 @@ export class MicrosoftDistributions extends JavaBase { core.info( `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` ); - const javaArchivePath = await tc.downloadTool(javaRelease.url); + let javaArchivePath = await tc.downloadTool(javaRelease.url); + // Rename archive to add extension because after downloading + // archive does not contain extension type and it leads to some issues + // on Windows runners without PowerShell Core. + // + // For default PowerShell Windows it should contain extension type to unpack it. + if ( + process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64') + ) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + await fs.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } core.info(`Extracting Java archive...`); const extension = getDownloadArchiveExtension(); diff --git a/src/distributions/microsoft/microsoft-openjdk-versions.json b/src/distributions/microsoft/microsoft-openjdk-versions.json index 9b7e798..2f83f1b 100644 --- a/src/distributions/microsoft/microsoft-openjdk-versions.json +++ b/src/distributions/microsoft/microsoft-openjdk-versions.json @@ -33,6 +33,12 @@ "arch": "aarch64", "platform": "linux", "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.0-linux-aarch64.tar.gz" + }, + { + "filename": "microsoft-jdk-21.0.0-windows-aarch64.zip", + "arch": "aarch64", + "platform": "win32", + "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.0-windows-aarch64.zip" } ] }, @@ -70,6 +76,12 @@ "arch": "aarch64", "platform": "linux", "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-linux-aarch64.tar.gz" + }, + { + "filename": "microsoft-jdk-17.0.7-windows-aarch64.zip", + "arch": "aarch64", + "platform": "win32", + "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-windows-aarch64.zip" } ] }, @@ -329,6 +341,12 @@ "arch": "aarch64", "platform": "linux", "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.19-linux-aarch64.tar.gz" + }, + { + "filename": "microsoft-jdk-11.0.19-windows-aarch64.zip", + "arch": "aarch64", + "platform": "win32", + "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.19-windows-aarch64.zip" } ] }, diff --git a/src/distributions/zulu/installer.ts b/src/distributions/zulu/installer.ts index c996bb8..e406c6b 100644 --- a/src/distributions/zulu/installer.ts +++ b/src/distributions/zulu/installer.ts @@ -76,11 +76,18 @@ export class ZuluDistribution extends JavaBase { core.info( `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` ); - const javaArchivePath = await tc.downloadTool(javaRelease.url); + let javaArchivePath = await tc.downloadTool(javaRelease.url); core.info(`Extracting Java archive...`); const extension = getDownloadArchiveExtension(); - + if ( + process.platform === 'win32' && + (this.architecture === 'arm64' || this.architecture === 'aarch64') + ) { + const javaArchivePathRenamed = `${javaArchivePath}.zip`; + await fs.renameSync(javaArchivePath, javaArchivePathRenamed); + javaArchivePath = javaArchivePathRenamed; + } const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); const archiveName = fs.readdirSync(extractedJavaPath)[0];