fix: select musl JDK artifacts on Alpine for five distributions (#1220)

On Alpine, `getPlatformOption()` returned the glibc platform key for
Dragonwell, Corretto, Zulu, Liberica and Liberica NIK, so the action
resolved and installed a glibc JDK that cannot run under musl.

Add a shared `isAlpineLinux()` helper and use it to select each vendor's
musl artifacts:

| distribution | glibc         | musl           |
| ------------ | ------------- | -------------- |
| Dragonwell   | `linux`       | `alpine-linux` |
| Corretto     | `linux`       | `alpine`       |
| Zulu         | `linux_glibc` | `linux_musl`   |
| Liberica     | `linux`       | `linux-musl`   |
| Liberica NIK | `linux`       | `linux-musl`   |

Each key was verified against the vendor's live metadata API or manifest.

There is deliberately no silent fallback to glibc when a vendor has no
musl build for the requested version or architecture: the existing "could
not find a version that satisfies" error fires instead. This matches the
behaviour Temurin and SapMachine already have, and a glibc JDK would not
run on musl anyway.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74248bb0-72af-41d8-b85d-b0f5836e68db
This commit is contained in:
Bruno BorgesandCopilot App authored and GitHub committed 2026-08-05 12:54:41 -04:00
1 parent d0e61fe743
commit 4fbd0bd19d
15 files changed
+286 -31

No files matched your search

+3
View File
@@ -18,6 +18,7 @@ import {
ICorrettoAllAvailableVersions,
ICorrettoAvailableVersions
} from './models.js';
import {isAlpineLinux} from '../platform-types.js';
const CORRETTO_VERSIONS_URL =
'https://corretto.github.io/corretto-downloads/latest_links/indexmap_with_checksum.json';
@@ -189,6 +190,8 @@ export class CorrettoDistribution extends JavaBase {
return 'macos';
case 'win32':
return 'windows';
case 'linux':
return isAlpineLinux() ? 'alpine' : 'linux';
default:
return process.platform;
}