Support new GraalVM for JDK17/JDK20 release

This commit adds support for the new GraalVM for JDK17/JDK20 release, including the new Oracle GraalVM distribution.
For this, users only need to specify the 'java-version' option and the new 'distribution' option.
The 'version' option is now marked as optional and kept for compatibility with older GraalVM releases and Mandrel.
This commit is contained in:
Fabio Niephaus
2023-06-16 09:19:49 +02:00
parent 17d64df2bb
commit fc45baf59f
14 changed files with 756 additions and 216 deletions

View File

@@ -19,7 +19,7 @@ test('request invalid version/javaVersion', async () => {
await graalvm.setUpGraalVMRelease('', combination[0], combination[1])
} catch (err) {
if (!(err instanceof Error)) {
fail(`Unexpected non-Erro: ${err}`)
fail(`Unexpected non-Error: ${err}`)
}
error = err
}
@@ -31,6 +31,23 @@ test('request invalid version/javaVersion', async () => {
})
test('find version/javaVersion', async () => {
// Make sure the action can find the latest Java version for known major versions
for (var majorJavaVersion of ['17', '20']) {
await graalvm.findLatestGraalVMJDKCEJavaVersion(majorJavaVersion)
}
let error = new Error('unexpected')
try {
await graalvm.findLatestGraalVMJDKCEJavaVersion('11')
fail('Should not find Java version for 11')
} catch (err) {
if (!(err instanceof Error)) {
fail(`Unexpected non-Error: ${err}`)
}
error = err
}
expect(error.message).toContain('Unable to find the latest Java version for')
const latestRelease = await getTaggedRelease(
GRAALVM_RELEASES_REPO,
'vm-22.3.1'
@@ -40,7 +57,7 @@ test('find version/javaVersion', async () => {
const latestJavaVersion = findHighestJavaVersion(latestRelease, latestVersion)
expect(latestJavaVersion).not.toBe('')
let error = new Error('unexpected')
error = new Error('unexpected')
try {
const invalidRelease = {...latestRelease, tag_name: 'invalid'}
findGraalVMVersion(invalidRelease)
@@ -56,7 +73,7 @@ test('find version/javaVersion', async () => {
findHighestJavaVersion(latestRelease, 'invalid')
} catch (err) {
if (!(err instanceof Error)) {
fail(`Unexpected non-Erro: ${err}`)
fail(`Unexpected non-Error: ${err}`)
}
error = err
}