From 2408275e34ad9141fa3ff453eed0e1aaa0290c1a Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 13 Feb 2024 13:37:00 +0100 Subject: [PATCH] Add initial support for early access (EA) builds. --- .github/workflows/test.yml | 3 +++ dist/cleanup/index.js | Bin 3678956 -> 3679693 bytes dist/main/index.js | Bin 3748666 -> 3750347 bytes src/constants.ts | 3 +++ src/graalvm.ts | 25 +++++++++++++++++++++++++ src/utils.ts | 19 +++++++++++++++++++ 6 files changed, 50 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 76b6b22..d491f39 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,6 +35,9 @@ jobs: ] components: [''] include: + - java-version: '22-ea' + distribution: 'graalvm' + os: ubuntu-latest - java-version: '21' distribution: '' os: ubuntu-latest diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index ea401f39854067f4718f51d389a34d91a681eade..9cbc4f3057cfb89bf75d7bb5d86358eb5410fd50 100644 GIT binary patch delta 400 zcmZvX%}N4c6o%2pv6(W>rcCYUSXNr5PX8cw1udi-h@n1XKvcdNX%Rut3qhN3(|03* zi(1yIA8OOu3+Nu|Q>iF=;eo^9yze>Z{l4vadT4u2;ei)@P~d|KKl-6T#{dQqzz~86 zVHjbIz`!WR5WzU2h#`&%OkxVtAS5t@StK!sc`P7>G#0Uh43?2a4*6^IQ3)I}cgJ#> z@^Kl=d8jkhdERfm%3RHue!NgBB}ja)p4n8^PammMn(EE zWXpE-AjPS;O*~tdp}mQ8LGQRbvdff8bOVHSrW)cTmI;ZMJJLk%%^QeUx|h+9mFy}d zk2$N?gms&bT#?To{Ig#)!>W<~_15=c|8&nAnkiY4tV-4->yi!0W~-rX9YsF@p{b+H`Q~(xcCSAtT02m@;F|f+Z`~Z0`20 Z{jatUee;Z!Te*{ad5}kW@;!6DIDhB$F=zk) diff --git a/dist/main/index.js b/dist/main/index.js index 65ff422388f5981c29bdba9d51f4e6c7a6961684..d7560174c7d5f1ba1498fdc9cc3cd4190a516810 100644 GIT binary patch delta 992 zcmaKq?@Lor7{}RKo12=tx!e!4qt3RKyLxWFu|+eN3Db@Fqj$~Qc4k+vyK?W<43Qi? zSMFL_sfnl@NvyL|_EcYr!}5s_uT&EW`_6xcA)ieV*rhKj-!LEzR1_ zmSzq#poIgVgM*+41C)UgOi&ILPzi^i3aX(7%wU09u)<-e0~^@E0ZyogBhUax0YM`) zK{L3Z1&)CmJm7`nZ~|Jv2Mn}9`zySWZVN{PmqWo=cQgQ=)(zrhRC5;>PbZ)?`bB=OT+z^puUQ8jsU)|5LKEk=ZXvRce z&SOW@ZJr1Tl;l&15T_7X2?jbRc_Gmy-bx7~ml%`;`V4R#y|j!?nI(gTzMaReEb{>K zn&$mno?Pc3Ma*$MF@BQjb zRP)AQTio6 zYwZ@=_DNgmECh{8PQ<6wb4X-Dq%}L(LbtzZ%d7tDPZ!K;p*bgOME?vmLX^U#F0I~Q awX>>Dsye0Ww5l_z&Z;_>UA3Q|vi}C2v|Q!@ delta 167 zcmWN=#|gqv0Dxg)iM_YP8hbB^eFFFJmMv6%P!K0@4dHNIH5qD_Y`J^Bn7 vGGff+X1@0#doa7Ic%ICwA~qM3v-oP(!*jF^OP { + const latestPrerelease = await getLatestPrerelease( + ORACLE_GRAALVM_REPO_EA_BUILDS + ) + const expectedFileNamePrefix = 'graalvm-jdk-' + const expectedFileNameSuffix = `_${c.JDK_PLATFORM}-${c.JDK_ARCH}_bin${c.GRAALVM_FILE_EXTENSION}` + for (const asset of latestPrerelease.assets) { + if ( + asset.name.startsWith(expectedFileNamePrefix) && + asset.name.endsWith(expectedFileNameSuffix) + ) { + return asset.browser_download_url + } + } + throw new Error( + `Could not find Oracle GraalVM build for ${javaEaVersion}. ${c.ERROR_HINT}` + ) +} + export async function setUpGraalVMJDKCE( javaVersionOrDev: string ): Promise { diff --git a/src/utils.ts b/src/utils.ts index 0288dad..1934e56 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -33,6 +33,25 @@ export async function exec( } } +export async function getLatestPrerelease( + repo: string +): Promise { + const githubToken = getGitHubToken() + const options = githubToken.length > 0 ? {auth: githubToken} : {} + const octokit = new GitHubDotCom(options) + const releases: c.ReleasesResponse['data'] = ( + await octokit.request('GET /repos/{owner}/{repo}/releases', { + owner: c.GRAALVM_GH_USER, + repo + }) + ).data + const firstPrerelease = releases.find(r => r.prerelease) + if (!firstPrerelease) { + throw new Error(`Unable to find latest prerelease in ${repo}`) + } + return firstPrerelease +} + export async function getLatestRelease( repo: string ): Promise {