From 049aa7c191085861d44d99f02e02064c7921790a Mon Sep 17 00:00:00 2001 From: peterz Date: Thu, 22 Feb 2024 11:15:19 +0300 Subject: [PATCH] Musl support --- __tests__/liberica.test.ts | 21 +++++++++++++-------- dist/main/index.js | Bin 3763092 -> 3763443 bytes src/liberica.ts | 18 ++++++++++++++++-- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/__tests__/liberica.test.ts b/__tests__/liberica.test.ts index ad3a742..48e8e1b 100644 --- a/__tests__/liberica.test.ts +++ b/__tests__/liberica.test.ts @@ -1,4 +1,5 @@ import * as liberica from '../src/liberica' +import * as c from '../src/constants' import * as path from 'path' import * as semver from 'semver' import {expect, test} from '@jest/globals' @@ -35,18 +36,22 @@ test('find latest JDK version', async () => { }, 30000) test('find asset URL', async () => { - await expectURL( - '17.0.10+13', - 'core', - 'bellsoft-liberica-vm-core-openjdk17.0.10' - ) + await expectURL('11.0.22+12', '', 'bellsoft-liberica-vm-openjdk11.0.22') await expectURL('17.0.10+13', 'std', 'bellsoft-liberica-vm-openjdk17.0.10') await expectURL( '21.0.2+14', - 'full', - 'bellsoft-liberica-vm-full-openjdk21.0.2' + 'core', + 'bellsoft-liberica-vm-core-openjdk21.0.2' ) - await expectURL('21.0.2+14', '', 'bellsoft-liberica-vm-openjdk21.0.2') + + if (!c.IS_LINUX) { + // This check can fail on Linux because there's no `full` version for aarch64 and musl + await expectURL( + '21.0.2+14', + 'full', + 'bellsoft-liberica-vm-full-openjdk21.0.2' + ) + } }, 10000) type verifier = ( diff --git a/dist/main/index.js b/dist/main/index.js index 30c225f0c637889b6bd392c2a286718612279b58..d8dc82821356dd3bdbaaeba518bcdc5bc69fadf3 100644 GIT binary patch delta 389 zcmZY4$x6de6vlDt)WKR?ZJmd!w%$aW=ye8B(Vb9rQ3OGxmL%0co0JR=xKQu|!A&>9 z1)oFk0elE?)s^5P3!yJyEV%N(Z+AF<&eQv6pz-k;xI+LfXhj>^(SaaB2qS_{MA3y9 zx)DbLJ?KReDfFQq0~o{*hB1OsjA0xE6PUyl(#T*M6aqxdU=~?OkTHk(7xrA|wdIAy z*XKIBkEZkz5p;XcwaYt2TT^qo;a&-RyAnw9RgVpErm+k^^;nv}H6jW6Z&f5W5#rD9 z9Yx;F7jnD%hete7kN4iXPSthD1`+17L^;>XYN2YGie}pdCfn8GrIEij6j7jMRi#;S zOeN_;vuxco=!q!Xj;dLf?3j7S(v35Lx=v}0itEkVU(swPWZh7;tAmn2EB+r;B%4HH nBH{gyJu&|M6=ZxX6b(PrJmy>QE&7&x%f1!g>TAtgYrp*g+INWG delta 180 zcmWl~%WeTt0D$2PN{#!Sq6T%pjH9S0l1Qi^lh~2?6EDzY5|7Ze#8Y%FU0I0TSa|`* z;>&mczbZectFl4Ch8+hlIC1fc8x;>;eE10vBt)19QDVeNkR-($X)=IEf})zgmgw#-Hz7U$ RlzLKM8c1Kq%WW83KLFgrNSgov diff --git a/src/liberica.ts b/src/liberica.ts index eb6bc41..532e60c 100644 --- a/src/liberica.ts +++ b/src/liberica.ts @@ -6,6 +6,7 @@ import { getMatchingTags } from './utils' import {downloadTool} from '@actions/tool-cache' +import {spawnSync} from 'child_process' const LIBERICA_GH_USER = 'bell-sw' const LIBERICA_RELEASES_REPO = 'LibericaNIK' @@ -96,8 +97,21 @@ function determineToolName(javaVersion: string, version: string) { } function determinePlatformPart() { - // for linux-musl, return `linux-${c.JDK_ARCH}-musl` - return `${c.JDK_PLATFORM}-${c.GRAALVM_ARCH}` + if (isMuslBasedLinux()) { + return `linux-${c.JDK_ARCH}-musl` + } else { + return `${c.JDK_PLATFORM}-${c.GRAALVM_ARCH}` + } +} + +function isMuslBasedLinux() { + if (c.IS_LINUX) { + const output = spawnSync('ldd', ['--version']).stderr.toString('utf8') + if (output.indexOf('musl') > -1) { + return true + } + } + return false } function isDigit(c: string) {