Try composite approach.

This commit is contained in:
Fabio Niephaus 2022-12-12 21:17:24 +01:00
parent 778af55c2a
commit b400b017a5
No known key found for this signature in database
GPG Key ID: F21CF5275F31DFD6
5 changed files with 81 additions and 9 deletions

View File

@ -45,11 +45,24 @@ inputs:
required: false
description: 'Post a comment containing a Native Image build report on pull requests.'
default: 'false'
mvn-settings-path:
description: 'Path to where the settings.xml file will be written. Default is ~/.m2.'
required: false
outputs:
cache-hit:
description: 'A boolean value to indicate an exact match was found for the primary key'
runs:
using: 'node16'
main: 'dist/main/index.js'
post: 'dist/cleanup/index.js'
post-if: 'success()'
using: "composite"
steps:
- uses: ./dist
id: graalvm
- name: 'Install Java Development Kit'
uses: actions/setup-java@v3
with:
java-version: ${{ inputs.java-version }}
distribution: jdkfile
jdkFile: ${{ steps.graalvm.outputs.archive }}
cache: ${{ inputs.cache }}
settings-path: ${{ inputs.mvn-settings-path }}
- shell: bash
run: echo "GRAALVM_HOME=$JAVA_HOME" >> $GITHUB_ENV

55
dist/action.yml generated vendored Normal file
View File

@ -0,0 +1,55 @@
name: 'GitHub Action for GraalVM'
description: 'Set up a specific version of GraalVM Community Edition (CE) or Enterprise Edition (EE)'
author: 'GraalVM Community'
branding:
icon: 'terminal'
color: 'blue'
inputs:
version:
required: true
description: 'GraalVM version (release, latest, dev).'
gds-token:
required: false
description: 'Download token for the GraalVM Download Service. If provided, the action will set up GraalVM Enterprise Edition.'
java-version:
required: true
description: 'Java version (11 or 17, 8 or 16 for older releases).'
components:
required: false
description: 'Comma-separated list of GraalVM components to be installed.'
default: ''
github-token:
required: false
description: 'Set it to secrets.GITHUB_TOKEN to increase rate limits when accessing the GitHub API.'
default: ''
set-java-home:
required: false
description: 'Set $JAVA_HOME to the GraalVM installation. Default: true.'
default: 'true'
cache:
description: 'Name of the build platform to cache dependencies. It can be "maven", "gradle", or "sbt".'
required: false
check-for-updates:
required: false
description: 'Annotate jobs with update notifications, for example, when a new GraalVM release is available'
default: 'true'
native-image-musl:
required: false
description: 'Set up musl for static image building with GraalVM Native Image.'
default: 'false'
native-image-job-reports:
required: false
description: 'Post a job summary containing a Native Image build report.'
default: 'false'
native-image-pr-reports:
required: false
description: 'Post a comment containing a Native Image build report on pull requests.'
default: 'false'
outputs:
cache-hit:
description: 'A boolean value to indicate an exact match was found for the primary key'
runs:
using: 'node16'
main: 'main/index.js'
post: 'cleanup/index.js'
post-if: 'success()'

4
dist/cleanup/index.js generated vendored
View File

@ -74448,7 +74448,9 @@ function getLatestRelease(repo) {
exports.getLatestRelease = getLatestRelease;
function downloadAndExtractJDK(downloadUrl) {
return __awaiter(this, void 0, void 0, function* () {
return findJavaHomeInSubfolder(yield extract(yield tc.downloadTool(downloadUrl)));
const archive = yield tc.downloadTool(downloadUrl);
core.setOutput('archive', archive);
return findJavaHomeInSubfolder(yield extract(archive));
});
}
exports.downloadAndExtractJDK = downloadAndExtractJDK;

4
dist/main/index.js generated vendored
View File

@ -75195,7 +75195,9 @@ function getLatestRelease(repo) {
exports.getLatestRelease = getLatestRelease;
function downloadAndExtractJDK(downloadUrl) {
return __awaiter(this, void 0, void 0, function* () {
return findJavaHomeInSubfolder(yield extract(yield tc.downloadTool(downloadUrl)));
const archive = yield tc.downloadTool(downloadUrl);
core.setOutput('archive', archive);
return findJavaHomeInSubfolder(yield extract(archive));
});
}
exports.downloadAndExtractJDK = downloadAndExtractJDK;

View File

@ -50,9 +50,9 @@ export async function getLatestRelease(
export async function downloadAndExtractJDK(
downloadUrl: string
): Promise<string> {
return findJavaHomeInSubfolder(
await extract(await tc.downloadTool(downloadUrl))
)
const archive = await tc.downloadTool(downloadUrl)
core.setOutput('archive', archive)
return findJavaHomeInSubfolder(await extract(archive))
}
export async function downloadExtractAndCacheJDK(