DeLaGuardo / setup-graalvm

MIT License
62 stars 17 forks source link
cd ci github-actions graalvm

setup-graalvm

This project is no longer maintained. Please consider using setup-graalvm action from graalvm team.

This action sets up GraalVM environment for using in GitHub Actions.

Notes:

Since version 19.3.0 each version of graalvm available with modifier to specify version of JDK. java8 and java11 are available atm.

Usage

steps:
- uses: actions/checkout@latest
- uses: DeLaGuardo/setup-graalvm@5.0
  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

Nightly builds

steps:
- uses: actions/checkout@latest
- uses: DeLaGuardo/setup-graalvm@5.0
  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

Using GraalVM Component Updater (aka. gu)

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.cmd
          - os: macos-latest
            gu-binary: gu.cmd
          - os: windows-latest
            gu-binary: gu
    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

License

The scripts and documentation in this project are released under the MIT License