mirror of
https://github.com/graalvm/setup-graalvm.git
synced 2025-02-07 17:00:13 +08:00
Prepare for deprecation of GraalVM Updater.
This commit is contained in:
parent
c569e64c0b
commit
265e01895c
32
src/gu.ts
32
src/gu.ts
@ -1,6 +1,9 @@
|
|||||||
|
import * as c from './constants'
|
||||||
|
import * as core from '@actions/core'
|
||||||
import {GRAALVM_PLATFORM} from './constants'
|
import {GRAALVM_PLATFORM} from './constants'
|
||||||
import {exec} from './utils'
|
import {exec} from './utils'
|
||||||
import {join} from 'path'
|
import {join} from 'path'
|
||||||
|
import {gte as semverGte, valid as semverValid} from 'semver'
|
||||||
|
|
||||||
const BASE_FLAGS = ['--non-interactive', 'install', '--no-progress']
|
const BASE_FLAGS = ['--non-interactive', 'install', '--no-progress']
|
||||||
const COMPONENT_TO_POST_INSTALL_HOOK = new Map<string, Map<string, string>>([
|
const COMPONENT_TO_POST_INSTALL_HOOK = new Map<string, Map<string, string>>([
|
||||||
@ -22,6 +25,35 @@ const COMPONENT_TO_POST_INSTALL_HOOK = new Map<string, Map<string, string>>([
|
|||||||
])
|
])
|
||||||
|
|
||||||
export async function setUpGUComponents(
|
export async function setUpGUComponents(
|
||||||
|
javaVersion: string,
|
||||||
|
graalVMVersion: string,
|
||||||
|
graalVMHome: string,
|
||||||
|
components: string[],
|
||||||
|
gdsToken: string
|
||||||
|
): Promise<void> {
|
||||||
|
if (components.length == 0) {
|
||||||
|
return // nothing to do
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
graalVMVersion === c.VERSION_DEV ||
|
||||||
|
javaVersion === c.VERSION_DEV ||
|
||||||
|
(semverValid(javaVersion) && semverGte(javaVersion, '21'))
|
||||||
|
) {
|
||||||
|
core.warning(
|
||||||
|
`Unable to install component(s): '${components.join(
|
||||||
|
','
|
||||||
|
)}'. The latest GraalVM dev builds and the upcoming GraalVM for JDK 21 no longer include the GraalVM Updater: https://github.com/oracle/graal/issues/6855`
|
||||||
|
)
|
||||||
|
} else if (graalVMVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
||||||
|
core.warning(
|
||||||
|
`Mandrel does not support GraalVM component(s): '${components.join(',')}'`
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
await installGUComponents(gdsToken, graalVMHome, components)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function installGUComponents(
|
||||||
gdsToken: string,
|
gdsToken: string,
|
||||||
graalVMHome: string,
|
graalVMHome: string,
|
||||||
components: string[]
|
components: string[]
|
||||||
|
39
src/main.ts
39
src/main.ts
@ -17,7 +17,7 @@ async function run(): Promise<void> {
|
|||||||
try {
|
try {
|
||||||
const javaVersion = core.getInput(c.INPUT_JAVA_VERSION, {required: true})
|
const javaVersion = core.getInput(c.INPUT_JAVA_VERSION, {required: true})
|
||||||
const distribution = core.getInput(c.INPUT_DISTRIBUTION)
|
const distribution = core.getInput(c.INPUT_DISTRIBUTION)
|
||||||
const graalvmVersion = core.getInput(c.INPUT_VERSION)
|
const graalVMVersion = core.getInput(c.INPUT_VERSION)
|
||||||
const gdsToken = core.getInput(c.INPUT_GDS_TOKEN)
|
const gdsToken = core.getInput(c.INPUT_GDS_TOKEN)
|
||||||
const componentsString: string = core.getInput(c.INPUT_COMPONENTS)
|
const componentsString: string = core.getInput(c.INPUT_COMPONENTS)
|
||||||
const components: string[] =
|
const components: string[] =
|
||||||
@ -31,7 +31,7 @@ async function run(): Promise<void> {
|
|||||||
const enableNativeImageMusl = core.getInput(c.INPUT_NI_MUSL) === 'true'
|
const enableNativeImageMusl = core.getInput(c.INPUT_NI_MUSL) === 'true'
|
||||||
|
|
||||||
if (c.IS_WINDOWS) {
|
if (c.IS_WINDOWS) {
|
||||||
setUpWindowsEnvironment(graalvmVersion)
|
setUpWindowsEnvironment(graalVMVersion)
|
||||||
}
|
}
|
||||||
await setUpDependencies(components)
|
await setUpDependencies(components)
|
||||||
if (enableNativeImageMusl) {
|
if (enableNativeImageMusl) {
|
||||||
@ -40,7 +40,7 @@ async function run(): Promise<void> {
|
|||||||
|
|
||||||
// Download GraalVM JDK
|
// Download GraalVM JDK
|
||||||
const isGraalVMforJDK17OrLater =
|
const isGraalVMforJDK17OrLater =
|
||||||
distribution.length > 0 || graalvmVersion.length == 0
|
distribution.length > 0 || graalVMVersion.length == 0
|
||||||
let graalVMHome
|
let graalVMHome
|
||||||
if (isGraalVMforJDK17OrLater) {
|
if (isGraalVMforJDK17OrLater) {
|
||||||
switch (distribution) {
|
switch (distribution) {
|
||||||
@ -51,8 +51,8 @@ async function run(): Promise<void> {
|
|||||||
graalVMHome = await graalvm.setUpGraalVMJDKCE(javaVersion)
|
graalVMHome = await graalvm.setUpGraalVMJDKCE(javaVersion)
|
||||||
break
|
break
|
||||||
case c.DISTRIBUTION_MANDREL:
|
case c.DISTRIBUTION_MANDREL:
|
||||||
if (graalvmVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
if (graalVMVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
||||||
graalVMHome = await setUpMandrel(graalvmVersion, javaVersion)
|
graalVMHome = await setUpMandrel(graalVMVersion, javaVersion)
|
||||||
} else {
|
} else {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Mandrel requires the 'version' option (see https://github.com/graalvm/setup-graalvm/tree/main#options).`
|
`Mandrel requires the 'version' option (see https://github.com/graalvm/setup-graalvm/tree/main#options).`
|
||||||
@ -76,7 +76,7 @@ async function run(): Promise<void> {
|
|||||||
throw new Error(`Unsupported distribution: ${distribution}`)
|
throw new Error(`Unsupported distribution: ${distribution}`)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (graalvmVersion) {
|
switch (graalVMVersion) {
|
||||||
case c.VERSION_LATEST:
|
case c.VERSION_LATEST:
|
||||||
if (
|
if (
|
||||||
javaVersion.startsWith('17') ||
|
javaVersion.startsWith('17') ||
|
||||||
@ -102,15 +102,15 @@ async function run(): Promise<void> {
|
|||||||
graalVMHome = await graalvm.setUpGraalVMJDKDevBuild()
|
graalVMHome = await graalvm.setUpGraalVMJDKDevBuild()
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
if (graalvmVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
if (graalVMVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
||||||
graalVMHome = await setUpMandrel(graalvmVersion, javaVersion)
|
graalVMHome = await setUpMandrel(graalVMVersion, javaVersion)
|
||||||
} else {
|
} else {
|
||||||
if (enableCheckForUpdates) {
|
if (enableCheckForUpdates) {
|
||||||
await checkForUpdates(graalvmVersion, javaVersion)
|
await checkForUpdates(graalVMVersion, javaVersion)
|
||||||
}
|
}
|
||||||
graalVMHome = await graalvm.setUpGraalVMRelease(
|
graalVMHome = await graalvm.setUpGraalVMRelease(
|
||||||
gdsToken,
|
gdsToken,
|
||||||
graalvmVersion,
|
graalVMVersion,
|
||||||
javaVersion
|
javaVersion
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -126,21 +126,18 @@ async function run(): Promise<void> {
|
|||||||
core.exportVariable('JAVA_HOME', graalVMHome)
|
core.exportVariable('JAVA_HOME', graalVMHome)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up GraalVM components (if any)
|
await setUpGUComponents(
|
||||||
if (components.length > 0) {
|
javaVersion,
|
||||||
if (graalvmVersion.startsWith(c.MANDREL_NAMESPACE)) {
|
graalVMVersion,
|
||||||
core.warning(
|
graalVMHome,
|
||||||
`Mandrel does not support GraalVM components: ${componentsString}`
|
components,
|
||||||
)
|
gdsToken
|
||||||
} else {
|
)
|
||||||
await setUpGUComponents(gdsToken, graalVMHome, components)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cache && isCacheAvailable()) {
|
if (cache && isCacheAvailable()) {
|
||||||
await restore(cache)
|
await restore(cache)
|
||||||
}
|
}
|
||||||
setUpNativeImageBuildReports(isGraalVMforJDK17OrLater, graalvmVersion)
|
setUpNativeImageBuildReports(isGraalVMforJDK17OrLater, graalVMVersion)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error instanceof Error) core.setFailed(error.message)
|
if (error instanceof Error) core.setFailed(error.message)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user