From 1c449b9ad21d0df6bccdbb7efa4d2f35a523cd2f Mon Sep 17 00:00:00 2001 From: Pawel Palucha Date: Tue, 7 Jun 2022 22:03:10 +0200 Subject: [PATCH] Fix support for Zulu arm64 architecture Azul API stopped to support arm64 architecture, the only supported option for ARM cpus is now 'arm'. This requires to set up hw_bitness properly to get 64 bits version. 32 bits version can be obtained by using 'arm' as an architecture. --- README.md | 2 ++ __tests__/distributors/zulu-installer.test.ts | 8 ++++++++ dist/setup/index.js | 3 +++ src/distributions/zulu/installer.ts | 2 ++ 4 files changed, 15 insertions(+) diff --git a/README.md b/README.md index 0e8d744f6..9dcd0fad6 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,8 @@ Currently, the following distributions are supported: **NOTE:** Adopt OpenJDK got moved to Eclipse Temurin and won't be updated anymore. It is highly recommended to migrate workflows from `adopt` to `temurin` to keep receiving software and security updates. See more details in the [Good-bye AdoptOpenJDK post](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/). +**NOTE:** For Zulu OpenJDK architectures x64 and arm64 are mapped to x86 / arm with proper hw_bitness. + ### Caching packages dependencies The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under hood for caching dependencies but requires less configuration settings. Supported package managers are gradle, maven and sbt. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files: - gradle: `**/*.gradle*`, `**/gradle-wrapper.properties` diff --git a/__tests__/distributors/zulu-installer.test.ts b/__tests__/distributors/zulu-installer.test.ts index 79a3389fe..49d71d4ae 100644 --- a/__tests__/distributors/zulu-installer.test.ts +++ b/__tests__/distributors/zulu-installer.test.ts @@ -52,6 +52,14 @@ describe('getAvailableVersions', () => { [ { version: '8', architecture: 'x64', packageType: 'jre+fx', checkLatest: false }, '?os=macos&ext=tar.gz&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx' + ], + [ + { version: '11', architecture: 'arm64', packageType: 'jdk', checkLatest: false }, + '?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga' + ], + [ + { version: '11', architecture: 'arm', packageType: 'jdk', checkLatest: false }, + '?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga' ] ])('build correct url for %s -> %s', async (input, parsedUrl) => { const distribution = new ZuluDistribution(input); diff --git a/dist/setup/index.js b/dist/setup/index.js index f2a2170f5..745b43865 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -102070,6 +102070,9 @@ class ZuluDistribution extends base_installer_1.JavaBase { else if (this.architecture == 'x86') { return { arch: 'x86', hw_bitness: '32', abi: '' }; } + else if (this.architecture == 'arm64') { + return { arch: 'arm', hw_bitness: '64', abi: '' }; + } else { return { arch: this.architecture, hw_bitness: '', abi: '' }; } diff --git a/src/distributions/zulu/installer.ts b/src/distributions/zulu/installer.ts index 7cb327043..34679bbd5 100644 --- a/src/distributions/zulu/installer.ts +++ b/src/distributions/zulu/installer.ts @@ -133,6 +133,8 @@ export class ZuluDistribution extends JavaBase { return { arch: 'x86', hw_bitness: '64', abi: '' }; } else if (this.architecture == 'x86') { return { arch: 'x86', hw_bitness: '32', abi: '' }; + } else if (this.architecture == 'arm64') { + return { arch: 'arm', hw_bitness: '64', abi: '' }; } else { return { arch: this.architecture, hw_bitness: '', abi: '' }; }