This action sets up GraalVM environment for using in GitHub Actions.
- It downloads (if it is not cached yet) required version of GraalVM Community edition
- Adds executors provided by GraalVM distribution to the environment
- Register problem matchers for error output
Since version 19.3.0 each version of graalvm available with modifier to specify version of JDK. java8 and java11 are available atm.
steps:
- uses: actions/checkout@latest
- uses: DeLaGuardo/[email protected]
with:
# GraalVM version, no pattern syntax available atm
graalvm: '21.0.0.2'
# Java version, optional, defaults to 'java8'. Available options are 'java8' and 'java11'.
java: 'java11'
# Architecture flag, optional, defaults to 'amd64'. Available options are 'amd64' and 'aarch64'. Later is available only for linux runners.
arch: 'amd64'
- run: java -version
steps:
- uses: actions/checkout@latest
- uses: DeLaGuardo/[email protected]
with:
graalvm: 'nightly'
# secret token needed to fetch latest nightly release automatically
personal-token: ${{ secrets.GITHUB_TOKEN }}
# Java version, optional, defaults to 'java8'. Available options are 'java8' and 'java11'.
java: 'java11'
# Architecture flag, optional, defaults to 'amd64'. Available options are 'amd64' and 'aarch64'. Later is available only for linux runners.
arch: 'amd64'
- run: java -version
gu
binary is available as gu
on ubuntu and macos, on windows - as gu.cmd
.
jobs:
sample-job:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
gu-binary: [gu, gu.cmd]
exclude:
- os: ubuntu-latest
gu-binary: gu
- os: macos-latest
gu-binary: gu
- os: windows-latest
gu-binary: gu.cmd
steps:
- name: Setup Graalvm
id: setup-graalvm
uses: DeLaGuardo/setup-graalvm@master
with:
# GraalVM version, no pattern syntax available atm
graalvm: '21.0.0.2'
# Java version, optional, defaults to 'java8'. Available options are 'java8' and 'java11'.
java: 'java11'
# Architecture flag, optional, defaults to 'amd64'. Available options are 'amd64' and 'aarch64'. Later is available only for linux runners.
arch: 'amd64'
- name: Install native-image component
run: |
${{ matrix.gu-binary }} install native-image
The scripts and documentation in this project are released under the MIT License