このエントリは2026/07/07現在の情報に基づいています。将来の機能追加や変更に伴い、記載事項からの乖離が発生する可能性があります。
何が起こったか?
GraalVM 25.1が出たとのことなので、GitHub Actionsで使うGraalVMバージョンも変更したところ、Actionsでビルドエラーが出てしまう、という状況に遭遇した。 現在GitHub Actionsでは、graalvm/setup-graalvmを使って、Java 25.0.3 (最新のLTS) を使っている。
...
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: checkout codes
uses: actions/checkout@v7
- name: checkout codes and setup GraalVM
uses: graalvm/setup-graalvm@v1.6.1
with:
java-version: '25.0.3'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run JVM tests
run: mvn -B -Dpackaging=jar test
...
GraalVMのダウンロードページには、以下のような設定で動作するような表現がある(25.1.3というバージョンは存在しないので、おそらく25.0.3から25.1にするのを間違えたか、あくまでも例として出しているものと予想)。
オプションの設定方法はこちらにも記載がある。
Set up your GitHub Actions workflow with a specific GraalVM distribution.
https://github.com/graalvm/setup-graalvm
これらの情報を見ると、上記YAMLの12行目に、25.1を指定すればよさそうに見える。
実際に試す
...
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: checkout codes
uses: actions/checkout@v7
- name: checkout codes and setup GraalVM
uses: graalvm/setup-graalvm@v1.6.1
with:
java-version: '25.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run JVM tests
run: mvn -B -Dpackaging=jar test
...
ところがこれを実行すると、以下のような例外が出てGitHub Actionsが停止する。

java-versionというオプションで、25.1をサポートしていないように見える(25.1.0を指定したら、「そんなバージョンはダウンロードできへんわ、おまえ間違えてへんか?」と怒られる)。

原因
java-versionで指定できるのはJavaのバージョンであり、GraalVMのバージョンではないから。
実のところ、graalvm/setup-graalvmでバージョン指定をする場合、以下の2個のオプションが利用できる。
java-versionversion
リポジトリのREADME.mdに意味と使い分けが記載されているが、Java versionは25.0.3、25,0.4…というようなもの。それに対しGraalVMのバージョン、特に今回のInnovation releaseの場合は25.1であり、Java versionとは一致しない。そのため、上記例外が発生した、というわけ。
修正する
今回は、versionとして 25.1 を指定すればよいので、12行目を以下のように変更した。
...
jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: checkout codes
uses: actions/checkout@v7
- name: checkout codes and setup GraalVM
uses: graalvm/setup-graalvm@v1.6.1
with:
version: '25.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run JVM tests
run: mvn -B -Dpackaging=jar test
...
これでおしまい。これにより、問題なく動作するようになった(Innovation releaseを使ってビルドできた)。
Innovation releaseを使うなら
GraalVMはJavaのリリースサイクルから切り離され、独自のリリースサイクルに切り替わっている。そのため、java-versionを使ったバージョン指定はこれまで通り可能だが、innovation releaseを使うのであれば、versionを使って指定する必要がある。
Detaching GraalVM from the Java Ecosystem Train
https://blogs.oracle.com/java/detaching-graalvm-from-the-java-ecosystem-train
Accelerating the GraalVM Release Train
https://medium.com/graalvm/accelerating-the-graalvm-release-train-26b0d7cff2ab

