Files
setup-graalvm/src/features/check-for-updates.ts

48 lines
1.6 KiB
TypeScript
Raw Normal View History

2022-11-03 17:21:00 +01:00
import * as core from '@actions/core'
import {getTaggedRelease, toSemVer} from '../utils'
2022-11-03 17:21:00 +01:00
import {lt, major, minor, valid} from 'semver'
import {findGraalVMVersion} from '../graalvm'
import {GRAALVM_RELEASES_REPO} from '../constants'
2022-11-03 17:21:00 +01:00
export async function checkForUpdates(
graalVMVersion: string,
javaVersion: string
): Promise<void> {
if (
graalVMVersion.length > 0 &&
(javaVersion === '17' || javaVersion === '19')
) {
const recommendedJDK = javaVersion === '17' ? '17' : '20'
core.notice(
`A new GraalVM release is available! Please consider upgrading to GraalVM for JDK ${recommendedJDK}. Release notes: https://www.graalvm.org/release-notes/JDK_${recommendedJDK}/`
)
return
}
2023-02-13 10:30:11 +01:00
if (graalVMVersion.startsWith('22.3.') && javaVersion === '11') {
2022-11-03 17:21:00 +01:00
core.notice(
2023-02-13 10:30:11 +01:00
'Please consider upgrading your project to Java 17+. GraalVM 22.3.X releases are the last to support JDK11: https://github.com/oracle/graal/issues/5063'
2022-11-03 17:21:00 +01:00
)
return
}
const latestRelease = await getTaggedRelease(
GRAALVM_RELEASES_REPO,
'vm-22.3.1'
)
const latestGraalVMVersion = findGraalVMVersion(latestRelease)
2022-11-03 17:21:00 +01:00
const selectedVersion = toSemVer(graalVMVersion)
const latestVersion = toSemVer(latestGraalVMVersion)
if (
valid(selectedVersion) &&
valid(latestVersion) &&
lt(selectedVersion, latestVersion)
) {
core.notice(
`A new GraalVM release is available! Please consider upgrading to GraalVM ${latestGraalVMVersion}. Release notes: https://www.graalvm.org/release-notes/${major(
latestVersion
)}_${minor(latestVersion)}/`
)
}
}