Skip to content

Commit fc6dd32

Browse files
cristianrcvclaude
andcommitted
ci(build): use native-build-tools 0.11.5, drop JDK 25/Groovy bumps (COMP-1573)
The nativeCompile failure was not a JDK-too-old problem: native-build-tools 1.1.3 downloads the latest GraalVM reachability-metadata repository, which uses the new unified reachability-metadata schema that GraalVM for JDK 21 (and 25.0.1) does not accept. Bumping the JDK could not fix it. native-build-tools 0.11.x supports Gradle 9 (needed for the shadow 9.x migration) but still uses the legacy metadata-repository schema that GraalVM 21 accepts. Downgrading 1.1.3 -> 0.11.5 removes the schema mismatch with the metadata repository left enabled. This lets us revert the collateral bumps that were only introduced to chase the 1.1.3 schema: - native-build-tools 1.1.3 -> 0.11.5 - Gradle toolchain + native launcher languageVersion 25 -> 21 - setup-graalvm / setup-java java-version 25 -> 21 - Groovy test deps 4.0.32 -> 4.0.24 Net toolchain (GraalVM/JDK 21, Groovy 4.0.24) now matches master; the only new tool versions are shadow 9.5.0, Gradle 9.6.1, and native-build-tools 0.11.5. Retains the setup-graalvm SHA pinning and the test-report artifact name fix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent e92e5f0 commit fc6dd32

4 files changed

Lines changed: 13 additions & 13 deletions

File tree

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ jobs:
4040
- uses: graalvm/setup-graalvm@cabbb10818fabc989d6dbd508e4846596d20dd2d # v1.6.0
4141
if: ${{ matrix.musl }}
4242
with:
43-
java-version: '25'
43+
java-version: '21'
4444
github-token: ${{ secrets.GITHUB_TOKEN }}
4545
native-image-job-reports: 'true'
4646
native-image-musl: 'true'
4747

4848
- uses: graalvm/setup-graalvm@cabbb10818fabc989d6dbd508e4846596d20dd2d # v1.6.0
4949
if: ${{ !matrix.musl }}
5050
with:
51-
java-version: '25'
51+
java-version: '21'
5252
github-token: ${{ secrets.GITHUB_TOKEN }}
5353
native-image-job-reports: 'true'
5454

@@ -138,7 +138,7 @@ jobs:
138138
- name: Setup Java for JReleaser
139139
uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4.8.0
140140
with:
141-
java-version: '25'
141+
java-version: '21'
142142
distribution: 'adopt'
143143

144144
- name: Version

.github/workflows/security-submit-dependecy-graph.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
1414
- uses: graalvm/setup-graalvm@cabbb10818fabc989d6dbd508e4846596d20dd2d # v1.6.0
1515
with:
16-
java-version: 25
16+
java-version: 21
1717

1818
- name: Generate and submit dependency graph for wave-cli
1919
uses: gradle/actions/dependency-submission@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Wave CLI is a command-line tool for the Wave container provisioning service. It
1212
- Mirror containers between registries
1313
- Scan containers for security vulnerabilities
1414

15-
The CLI is built using Java 17 (with Java 25 toolchain) and compiles to a native binary using GraalVM.
15+
The CLI is built using Java 17 (with Java 21 toolchain) and compiles to a native binary using GraalVM.
1616

1717
## Architecture
1818

@@ -81,7 +81,7 @@ The project compiles to a native binary with specific configuration:
8181

8282
### Native Compilation
8383
```bash
84-
# Build native binary (requires GraalVM Java 25)
84+
# Build native binary (requires GraalVM Java 21)
8585
./gradlew app:nativeCompile
8686

8787
# Run the native binary

app/build.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
plugins {
22
id 'groovy'
33
id 'io.seqera.wave.cli.java-application-conventions'
4-
id 'org.graalvm.buildtools.native' version '1.1.3'
4+
id 'org.graalvm.buildtools.native' version '0.11.5'
55
id 'com.gradleup.shadow' version '9.5.0'
66
}
77

88
java {
99
toolchain {
10-
languageVersion = JavaLanguageVersion.of(25)
10+
languageVersion = JavaLanguageVersion.of(21)
1111
}
1212
sourceCompatibility = 17
1313
targetCompatibility = 17
@@ -32,10 +32,10 @@ dependencies {
3232
// bump commons-io version to address security vulnerabilities
3333
runtimeOnly 'commons-io:commons-io:2.18.0'
3434

35-
testImplementation "org.apache.groovy:groovy:4.0.32"
36-
testImplementation "org.apache.groovy:groovy-nio:4.0.32"
37-
testImplementation "org.apache.groovy:groovy-test:4.0.32"
38-
testImplementation "org.apache.groovy:groovy-json:4.0.32"
35+
testImplementation "org.apache.groovy:groovy:4.0.24"
36+
testImplementation "org.apache.groovy:groovy-nio:4.0.24"
37+
testImplementation "org.apache.groovy:groovy-test:4.0.24"
38+
testImplementation "org.apache.groovy:groovy-json:4.0.24"
3939
testImplementation "net.bytebuddy:byte-buddy:1.14.11"
4040
testImplementation ("org.spockframework:spock-core:2.4-groovy-4.0") { exclude group: 'org.apache.groovy' }
4141
}
@@ -96,7 +96,7 @@ graalvmNative {
9696
}
9797

9898
javaLauncher = javaToolchains.launcherFor {
99-
languageVersion = JavaLanguageVersion.of(25)
99+
languageVersion = JavaLanguageVersion.of(21)
100100
vendor = JvmVendorSpec.matching("Oracle Corporation")
101101
}
102102
buildArgs.add('--enable-url-protocols=https')

0 commit comments

Comments
 (0)