You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
GitHub Action for GraalVM
v1.0.0
This GitHub action sets up GraalVM Community Edition and GraalVM components such as Native Image and GraalVM languages.
This action:
- supports GraalVM CE releases, dev builds, and Mandrel (see options)
- has built-in support for GraalVM components and the GraalVM updater
- exports a
$GRAALVM_HOME
environment variable - adds
$GRAALVM_HOME/bin
to the$PATH
environment variable
(GraalVM tools such asgu
and GraalVM languages can be invoked directly) - sets
$JAVA_HOME
to$GRAALVM_HOME
by default
(can be disabled viaset-java-home: 'false'
, see options) - sets up Windows environments with build tools using vcvarsall.bat
name: GraalVM build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: graalvm/setup-graalvm@v1
with:
version: 'latest'
java-version: '11'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Example step
run: |
echo "GRAALVM_HOME: $GRAALVM_HOME"
echo "JAVA_HOME: $JAVA_HOME"
java --version
gu --version
native-image --version
name: GraalVM Native Image build
on: [push, pull_request]
jobs:
build:
name: ${{ matrix.version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
version: [latest, dev, '21.3.0']
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v2
- uses: graalvm/setup-graalvm@v1
with:
version: ${{ matrix.version }}
java-version: '11'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build and run HelloWorld.java
run: |
javac HelloWorld.java
native-image HelloWorld
./helloworld
if: runner.os != 'Windows'
- name: Build and run HelloWorld.java on Windows
run: |
javac.exe HelloWorld.java
native-image.cmd HelloWorld
./helloworld.exe
if: runner.os == 'Windows'
- name: Upload binary
uses: actions/upload-artifact@v2
with:
name: helloworld-${{ matrix.os }}-${{ matrix.version }}
path: helloworld*
Name | Default | Description |
---|---|---|
version (required) |
n/a | X.Y.Z (e.g., 22.0.0 ) for a specific GraalVM releaselatest for latest stable release,dev for latest dev build,mandrel-X.Y.Z (e.g., mandrel-21.3.0.0-Final ) for a specific Mandrel release, ormandrel-latest for latest Mandrel stable release. |
java-version (required) |
n/a | '11' or '17' for a specific Java version.( '8' and '16' are supported for GraalVM 21.2 and earlier.) |
components |
'' |
Comma-spearated list of GraalVM components (e.g., native-image or ruby,nodejs ) that will be installed by the GraalVM Updater. |
github-token |
'' |
Token for communication with the GitHub API. Please set to ${{ secrets.GITHUB_TOKEN }} (see templates) to allow the action to authenticate with the GitHub API, which helps to reduce rate limiting issues. |
set-java-home |
'true' |
If set to 'true' , instructs the action to set $JAVA_HOME to the path of the GraalVM installation. |
We welcome code contributions. To get started, you will need to sign the Oracle Contributor Agreement (OCA).
Only pull requests from committers that can be verified as having signed the OCA can be accepted.