diff --git a/src/features/check-for-updates.ts b/src/features/check-for-updates.ts new file mode 100644 index 0000000..31b7c2f --- /dev/null +++ b/src/features/check-for-updates.ts @@ -0,0 +1,30 @@ +import * as core from '@actions/core' +import {toSemVer} from '../utils' +import {lt, major, minor, valid} from 'semver' +import {getLatestReleaseVersion} from '../graalvm' + +export async function checkForUpdates( + graalVMVersion: string, + javaVersion: string +): Promise { + if (graalVMVersion === '22.3.0' && javaVersion === '11') { + core.notice( + 'Please consider upgrading your project to Java 17+. The GraalVM 22.3.0 release is the last to support JDK11: https://github.com/oracle/graal/issues/5063' + ) + return + } + const latestGraalVMVersion = await getLatestReleaseVersion() + 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)}/` + ) + } +} diff --git a/src/features.ts b/src/features/musl.ts similarity index 61% rename from src/features.ts rename to src/features/musl.ts index b67b148..a5cde2d 100644 --- a/src/features.ts +++ b/src/features/musl.ts @@ -1,40 +1,12 @@ -import * as c from './constants' +import * as c from '../constants' import * as core from '@actions/core' import * as tc from '@actions/tool-cache' -import {exec, toSemVer} from './utils' +import {exec} from '../utils' import {join} from 'path' -import {lt, major, minor, valid} from 'semver' -import {getLatestReleaseVersion} from './graalvm' const MUSL_NAME = 'x86_64-linux-musl-native' const MUSL_VERSION = '10.2.1' -export async function checkForUpdates( - graalVMVersion: string, - javaVersion: string -): Promise { - if (graalVMVersion === '22.3.0' && javaVersion === '11') { - core.notice( - 'Please consider upgrading your project to Java 17+. The GraalVM 22.3.0 release is the last to support JDK11: https://github.com/oracle/graal/issues/5063' - ) - return - } - const latestGraalVMVersion = await getLatestReleaseVersion() - 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)}/` - ) - } -} - export async function setUpNativeImageMusl(): Promise { if (!c.IS_LINUX) { core.warning('musl is only supported on Linux') diff --git a/src/main.ts b/src/main.ts index d47a6b8..d0b779e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,8 @@ import {restore} from './features/cache' import {setUpDependencies} from './dependencies' import {setUpGUComponents} from './gu' import {setUpMandrel} from './mandrel' -import {checkForUpdates, setUpNativeImageMusl} from './features' +import {checkForUpdates} from './features/check-for-updates' +import {setUpNativeImageMusl} from './features/musl' import {setUpWindowsEnvironment} from './msvc' import {setUpNativeImageBuildReports} from './features/reports'