|
8 | 8 | getContents, |
9 | 9 | getLatestRelease, |
10 | 10 | getMatchingTags, |
11 | | - getTaggedRelease, |
12 | | - getLastReleases |
| 11 | + getTaggedRelease |
13 | 12 | } from './utils.js' |
14 | 13 | import { |
15 | 14 | downloadGraalVMViaGDS, |
@@ -60,29 +59,45 @@ export async function setUpGraalVMJDKCE(graalVMVersionOrDev: string, javaVersion |
60 | 59 | const jdkVersion = javaVersionOrEmpty.length > 0 ? javaVersionOrEmpty : '' + semver.coerce(graalVMVersionOrDev)?.major |
61 | 60 | const graalVMVersion = normalizeInnovationReleaseVersions(graalVMVersionOrDev) |
62 | 61 |
|
63 | | - const githubRelease = await getGraalVMCEGitHubRelease(graalVMVersion, jdkVersion) |
| 62 | + const githubRelease = await getGraalVMCEGitHubRelease(graalVMVersion) |
| 63 | + if (githubRelease.name?.includes(jdkVersion)) { |
| 64 | + core.warning( |
| 65 | + `JDK version does not match GraalVM CE release. Are you sure java-version: '${jdkVersion}' is correct?` |
| 66 | + ) |
| 67 | + } |
64 | 68 | const downloadUrl = findAssetDownloadUrl(githubRelease) |
65 | 69 | const toolName = determineLegacyToolName(false, graalVMVersion, jdkVersion) |
66 | 70 | const downloader = async () => downloadGraalVMByJavaVersionJDK(downloadUrl, graalVMVersion) |
67 | 71 | return downloadExtractAndCacheJDK(downloader, toolName, graalVMVersion) |
68 | 72 | } |
69 | 73 |
|
70 | | -async function getGraalVMCEGitHubRelease( |
71 | | - graalVMVersion: string, |
72 | | - jdkVersion: string |
73 | | -): Promise<c.LatestReleaseResponseData> { |
| 74 | +async function getGraalVMCEGitHubRelease(graalVMVersion: string): Promise<c.LatestReleaseResponseData> { |
| 75 | + let tagName |
74 | 76 | if (semver.valid(graalVMVersion)) { |
75 | | - return await getTaggedRelease(c.GRAALVM_GH_USER, c.GRAALVM_RELEASES_REPO, GRAALVM_GRAAL_TAG_PREFIX + graalVMVersion) |
| 77 | + tagName = GRAALVM_GRAAL_TAG_PREFIX + graalVMVersion |
| 78 | + } else { |
| 79 | + tagName = await findReleaseTagUrl(graalVMVersion) |
76 | 80 | } |
77 | | - const latestReleases = await getLastReleases(c.GRAALVM_GH_USER, c.GRAALVM_RELEASES_REPO) |
78 | | - for (const release of latestReleases) { |
79 | | - if (release.tag_name.includes(graalVMVersion)) { |
80 | | - return release |
| 81 | + return await getTaggedRelease(c.GRAALVM_GH_USER, c.GRAALVM_RELEASES_REPO, tagName) |
| 82 | +} |
| 83 | + |
| 84 | +async function findReleaseTagUrl(graalVMVersion: string) { |
| 85 | + const matchingRefs = await getMatchingTags( |
| 86 | + c.GRAALVM_GH_USER, |
| 87 | + c.GRAALVM_RELEASES_REPO, |
| 88 | + GRAALVM_GRAAL_TAG_PREFIX + graalVMVersion |
| 89 | + ) |
| 90 | + for (const matchingRef of matchingRefs) { |
| 91 | + const version = matchingRef.ref.substring(`refs/tags/${GRAALVM_GRAAL_TAG_PREFIX}`.length) |
| 92 | + if (semver.valid(version)) { |
| 93 | + return version |
| 94 | + } else { |
| 95 | + core.warning( |
| 96 | + `Unexpected release tag version ${version} for GraalVM version: ${graalVMVersion}. ${c.ERROR_REQUEST}` |
| 97 | + ) |
81 | 98 | } |
82 | 99 | } |
83 | | - throw new Error( |
84 | | - `Unable to find GitHub release. Are you sure version: '${graalVMVersion}' and java-version: '${jdkVersion}' correct?` |
85 | | - ) |
| 100 | + throw new Error(`Could not find GraalVM CE release tag. Are you sure version: '${graalVMVersion}' is correct?`) |
86 | 101 | } |
87 | 102 |
|
88 | 103 | function findAssetDownloadUrl(release: c.LatestReleaseResponseData) { |
|
0 commit comments