Compare commits
2 Commits
composite
...
fniephaus/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4aba115fa5 | ||
|
|
7c84ab1ba7 |
25
__tests__/graalvm.test.ts
Normal file
25
__tests__/graalvm.test.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import * as path from 'path'
|
||||||
|
import * as graalvm from '../src/graalvm'
|
||||||
|
import {expect, test} from '@jest/globals'
|
||||||
|
|
||||||
|
process.env['RUNNER_TOOL_CACHE'] = path.join(__dirname, 'TOOL_CACHE')
|
||||||
|
process.env['RUNNER_TEMP'] = path.join(__dirname, 'TEMP')
|
||||||
|
|
||||||
|
test('request invalid version/javaVersion', async () => {
|
||||||
|
for (var combination of [
|
||||||
|
['22.3.0', '7'],
|
||||||
|
['22.3', '17'],
|
||||||
|
['22.3', '7']
|
||||||
|
]) {
|
||||||
|
let error = new Error('unexpected')
|
||||||
|
try {
|
||||||
|
await graalvm.setUpGraalVMRelease('', combination[0], combination[1])
|
||||||
|
} catch (err) {
|
||||||
|
error = err
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(error).not.toBeUndefined()
|
||||||
|
expect(error.message).toContain('Failed to download')
|
||||||
|
expect(error.message).toContain('Are you sure version')
|
||||||
|
}
|
||||||
|
})
|
||||||
8
dist/cleanup/index.js
generated
vendored
8
dist/cleanup/index.js
generated
vendored
@@ -74415,9 +74415,9 @@ const fs_1 = __nccwpck_require__(7147);
|
|||||||
const core_1 = __nccwpck_require__(6762);
|
const core_1 = __nccwpck_require__(6762);
|
||||||
const crypto_1 = __nccwpck_require__(6113);
|
const crypto_1 = __nccwpck_require__(6113);
|
||||||
const path_1 = __nccwpck_require__(1017);
|
const path_1 = __nccwpck_require__(1017);
|
||||||
// Set up Octokit in the same way as @actions/github (see https://git.io/Jy9YP)
|
// Set up Octokit for github.com only and in the same way as @actions/github (see https://git.io/Jy9YP)
|
||||||
const baseUrl = process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
const baseUrl = 'https://api.github.com';
|
||||||
const GitHub = core_1.Octokit.defaults({
|
const GitHubDotCom = core_1.Octokit.defaults({
|
||||||
baseUrl,
|
baseUrl,
|
||||||
request: {
|
request: {
|
||||||
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
||||||
@@ -74438,7 +74438,7 @@ function getLatestRelease(repo) {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const githubToken = getGitHubToken();
|
const githubToken = getGitHubToken();
|
||||||
const options = githubToken.length > 0 ? { auth: githubToken } : {};
|
const options = githubToken.length > 0 ? { auth: githubToken } : {};
|
||||||
const octokit = new GitHub(options);
|
const octokit = new GitHubDotCom(options);
|
||||||
return (yield octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
return (yield octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
||||||
owner: c.GRAALVM_GH_USER,
|
owner: c.GRAALVM_GH_USER,
|
||||||
repo
|
repo
|
||||||
|
|||||||
28
dist/main/index.js
generated
vendored
28
dist/main/index.js
generated
vendored
@@ -74747,15 +74747,13 @@ exports.setUpGraalVMDevBuild = setUpGraalVMDevBuild;
|
|||||||
function setUpGraalVMRelease(gdsToken, version, javaVersion) {
|
function setUpGraalVMRelease(gdsToken, version, javaVersion) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const isEE = gdsToken.length > 0;
|
const isEE = gdsToken.length > 0;
|
||||||
const graalVMIdentifier = determineGraalVMIdentifier(isEE, version, javaVersion);
|
|
||||||
const toolName = determineToolName(isEE, javaVersion);
|
const toolName = determineToolName(isEE, javaVersion);
|
||||||
let downloader;
|
let downloader;
|
||||||
if (isEE) {
|
if (isEE) {
|
||||||
downloader = () => __awaiter(this, void 0, void 0, function* () { return gds_1.downloadGraalVMEE(gdsToken, version, javaVersion); });
|
downloader = () => __awaiter(this, void 0, void 0, function* () { return gds_1.downloadGraalVMEE(gdsToken, version, javaVersion); });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const downloadUrl = `${GRAALVM_CE_DL_BASE}/${GRAALVM_TAG_PREFIX}${version}/${graalVMIdentifier}${c.GRAALVM_FILE_EXTENSION}`;
|
downloader = () => __awaiter(this, void 0, void 0, function* () { return downloadGraalVMCE(version, javaVersion); });
|
||||||
downloader = () => __awaiter(this, void 0, void 0, function* () { return tool_cache_1.downloadTool(downloadUrl); });
|
|
||||||
}
|
}
|
||||||
return utils_1.downloadExtractAndCacheJDK(downloader, toolName, version);
|
return utils_1.downloadExtractAndCacheJDK(downloader, toolName, version);
|
||||||
});
|
});
|
||||||
@@ -74767,6 +74765,22 @@ function determineGraalVMIdentifier(isEE, version, javaVersion) {
|
|||||||
function determineToolName(isEE, javaVersion) {
|
function determineToolName(isEE, javaVersion) {
|
||||||
return `graalvm-${isEE ? 'ee' : 'ce'}-java${javaVersion}-${c.GRAALVM_PLATFORM}`;
|
return `graalvm-${isEE ? 'ee' : 'ce'}-java${javaVersion}-${c.GRAALVM_PLATFORM}`;
|
||||||
}
|
}
|
||||||
|
function downloadGraalVMCE(version, javaVersion) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const graalVMIdentifier = determineGraalVMIdentifier(false, version, javaVersion);
|
||||||
|
const downloadUrl = `${GRAALVM_CE_DL_BASE}/${GRAALVM_TAG_PREFIX}${version}/${graalVMIdentifier}${c.GRAALVM_FILE_EXTENSION}`;
|
||||||
|
try {
|
||||||
|
return yield tool_cache_1.downloadTool(downloadUrl);
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
if (error instanceof Error && error.message.includes('404')) {
|
||||||
|
// Not Found
|
||||||
|
throw new Error(`Failed to download ${graalVMIdentifier}. Are you sure version: '${version}' and javaVersion: '${javaVersion}' are correct?`);
|
||||||
|
}
|
||||||
|
throw new Error(`Failed to download ${graalVMIdentifier} (error: ${error}).`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -75162,9 +75176,9 @@ const fs_1 = __nccwpck_require__(7147);
|
|||||||
const core_1 = __nccwpck_require__(6762);
|
const core_1 = __nccwpck_require__(6762);
|
||||||
const crypto_1 = __nccwpck_require__(6113);
|
const crypto_1 = __nccwpck_require__(6113);
|
||||||
const path_1 = __nccwpck_require__(1017);
|
const path_1 = __nccwpck_require__(1017);
|
||||||
// Set up Octokit in the same way as @actions/github (see https://git.io/Jy9YP)
|
// Set up Octokit for github.com only and in the same way as @actions/github (see https://git.io/Jy9YP)
|
||||||
const baseUrl = process.env['GITHUB_API_URL'] || 'https://api.github.com';
|
const baseUrl = 'https://api.github.com';
|
||||||
const GitHub = core_1.Octokit.defaults({
|
const GitHubDotCom = core_1.Octokit.defaults({
|
||||||
baseUrl,
|
baseUrl,
|
||||||
request: {
|
request: {
|
||||||
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
||||||
@@ -75185,7 +75199,7 @@ function getLatestRelease(repo) {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const githubToken = getGitHubToken();
|
const githubToken = getGitHubToken();
|
||||||
const options = githubToken.length > 0 ? { auth: githubToken } : {};
|
const options = githubToken.length > 0 ? { auth: githubToken } : {};
|
||||||
const octokit = new GitHub(options);
|
const octokit = new GitHubDotCom(options);
|
||||||
return (yield octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
return (yield octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
||||||
owner: c.GRAALVM_GH_USER,
|
owner: c.GRAALVM_GH_USER,
|
||||||
repo
|
repo
|
||||||
|
|||||||
@@ -63,18 +63,12 @@ export async function setUpGraalVMRelease(
|
|||||||
javaVersion: string
|
javaVersion: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const isEE = gdsToken.length > 0
|
const isEE = gdsToken.length > 0
|
||||||
const graalVMIdentifier = determineGraalVMIdentifier(
|
|
||||||
isEE,
|
|
||||||
version,
|
|
||||||
javaVersion
|
|
||||||
)
|
|
||||||
const toolName = determineToolName(isEE, javaVersion)
|
const toolName = determineToolName(isEE, javaVersion)
|
||||||
let downloader: () => Promise<string>
|
let downloader: () => Promise<string>
|
||||||
if (isEE) {
|
if (isEE) {
|
||||||
downloader = async () => downloadGraalVMEE(gdsToken, version, javaVersion)
|
downloader = async () => downloadGraalVMEE(gdsToken, version, javaVersion)
|
||||||
} else {
|
} else {
|
||||||
const downloadUrl = `${GRAALVM_CE_DL_BASE}/${GRAALVM_TAG_PREFIX}${version}/${graalVMIdentifier}${c.GRAALVM_FILE_EXTENSION}`
|
downloader = async () => downloadGraalVMCE(version, javaVersion)
|
||||||
downloader = async () => downloadTool(downloadUrl)
|
|
||||||
}
|
}
|
||||||
return downloadExtractAndCacheJDK(downloader, toolName, version)
|
return downloadExtractAndCacheJDK(downloader, toolName, version)
|
||||||
}
|
}
|
||||||
@@ -94,3 +88,28 @@ function determineToolName(isEE: boolean, javaVersion: string): string {
|
|||||||
c.GRAALVM_PLATFORM
|
c.GRAALVM_PLATFORM
|
||||||
}`
|
}`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function downloadGraalVMCE(
|
||||||
|
version: string,
|
||||||
|
javaVersion: string
|
||||||
|
): Promise<string> {
|
||||||
|
const graalVMIdentifier = determineGraalVMIdentifier(
|
||||||
|
false,
|
||||||
|
version,
|
||||||
|
javaVersion
|
||||||
|
)
|
||||||
|
const downloadUrl = `${GRAALVM_CE_DL_BASE}/${GRAALVM_TAG_PREFIX}${version}/${graalVMIdentifier}${c.GRAALVM_FILE_EXTENSION}`
|
||||||
|
try {
|
||||||
|
return await downloadTool(downloadUrl)
|
||||||
|
} catch (error) {
|
||||||
|
if (error instanceof Error && error.message.includes('404')) {
|
||||||
|
// Not Found
|
||||||
|
throw new Error(
|
||||||
|
`Failed to download ${graalVMIdentifier}. Are you sure version: '${version}' and javaVersion: '${javaVersion}' are correct?`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
throw new Error(
|
||||||
|
`Failed to download ${graalVMIdentifier} (error: ${error}).`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import {Octokit} from '@octokit/core'
|
|||||||
import {createHash} from 'crypto'
|
import {createHash} from 'crypto'
|
||||||
import {join} from 'path'
|
import {join} from 'path'
|
||||||
|
|
||||||
// Set up Octokit in the same way as @actions/github (see https://git.io/Jy9YP)
|
// Set up Octokit for github.com only and in the same way as @actions/github (see https://git.io/Jy9YP)
|
||||||
const baseUrl = process.env['GITHUB_API_URL'] || 'https://api.github.com'
|
const baseUrl = 'https://api.github.com'
|
||||||
const GitHub = Octokit.defaults({
|
const GitHubDotCom = Octokit.defaults({
|
||||||
baseUrl,
|
baseUrl,
|
||||||
request: {
|
request: {
|
||||||
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
agent: new httpClient.HttpClient().getAgent(baseUrl)
|
||||||
@@ -38,7 +38,7 @@ export async function getLatestRelease(
|
|||||||
): Promise<c.LatestReleaseResponse['data']> {
|
): Promise<c.LatestReleaseResponse['data']> {
|
||||||
const githubToken = getGitHubToken()
|
const githubToken = getGitHubToken()
|
||||||
const options = githubToken.length > 0 ? {auth: githubToken} : {}
|
const options = githubToken.length > 0 ? {auth: githubToken} : {}
|
||||||
const octokit = new GitHub(options)
|
const octokit = new GitHubDotCom(options)
|
||||||
return (
|
return (
|
||||||
await octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
await octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
|
||||||
owner: c.GRAALVM_GH_USER,
|
owner: c.GRAALVM_GH_USER,
|
||||||
|
|||||||
Reference in New Issue
Block a user