-
Notifications
You must be signed in to change notification settings - Fork 8
Test under JDK 25, not JDK 25-ea #391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughUpdated the GitHub Actions Gradle workflow: standardized the Java matrix to ['17', '21', '24', '25'] (removed Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| strategy: | ||
| matrix: | ||
| java: [ '17', '21', '24', '25-ea' ] | ||
| java: ['17', '21', '24', '25'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify Temurin 25 availability before merging.
actions/setup-java@v5 with distribution: 'temurin' will fail if GA builds for JDK 25 aren't published yet. Please double-check that Adoptium exposes GA artifacts for 25 before landing this change.
🏁 Script executed:
#!/usr/bin/env bash
# Check whether Temurin GA builds for JDK 25 are available (Linux x64 JDK).
curl -s 'https://api.adoptium.net/v3/info/release_versions?heap_size=normal&image_type=jdk&jdk_version=25&os=linux&architecture=x64' | jq .Length of output: 2172
Remove JDK 25 from the GitHub Actions matrix
setup-java@v5 with distribution ‘temurin’ will fail—no GA builds for JDK 25 are published (Adoptium only shows JDK 26 beta). Revert or remove ‘25’ until GA artifacts are available.
🤖 Prompt for AI Agents
.github/workflows/gradle.yml around line 12: the CI matrix currently includes
java: ['17', '21', '24', '25'] but setup-java@v5 with distribution 'temurin'
cannot install JDK 25 (no GA artifacts), causing workflow failures; remove '25'
from the matrix (or replace it with a supported version) so the action only
lists valid, published JDK versions (e.g., ['17','21','24'] or add a confirmed
supported version) and commit the updated workflow file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (1)
.github/workflows/gradle.yml (1)
12-12: Confirm Temurin JDK 25 GA availability for setup-java.
If Temurin GA builds for 25 are live, this is good; if not, the job will fail. Please verify before merging. The earlier comment about 25 availability may now be outdated—recheck.Run this script; expect to see at least one download URL printed (non-empty):
#!/usr/bin/env bash # Check Temurin JDK 25 GA assets for Linux x64 JDK (hotspot). set -euo pipefail curl -s 'https://api.adoptium.net/v3/assets/latest/25/hotspot?os=linux&architecture=x64&image_type=jdk&heap_size=normal&vendor=eclipse' \ | jq -r '.[]?.binary.package.link' | tee /dev/stderr | awk 'END{exit NR==0}'
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/gradle.yml(2 hunks)
🔇 Additional comments (2)
.github/workflows/gradle.yml (2)
3-3: Yamllint disable is fine.
No issues with the truthy lint suppression on the trigger.
15-19: Checkout step looks good.
Shallow fetch with progress disabled is optimal for CI.
| strategy: | ||
| matrix: | ||
| java: [ '17', '21', '24', '25-ea' ] | ||
| java: ['17', '21', '24', '25'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Consider making the matrix resilient.
Set fail-fast: false so one JDK failure doesn’t cancel others.
strategy:
+ fail-fast: false
matrix:
java: ['17', '21', '24', '25']📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| strategy: | |
| matrix: | |
| java: [ '17', '21', '24', '25-ea' ] | |
| java: ['17', '21', '24', '25'] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: ['17', '21', '24', '25'] |
🤖 Prompt for AI Agents
.github/workflows/gradle.yml around lines 10 to 12: the current matrix strategy
will abort all jobs if one JDK job fails; update the workflow strategy to add
fail-fast: false under the matrix so failing a single JDK does not cancel the
remaining matrix jobs. Ensure the fail-fast key is placed at the same
indentation level as matrix within strategy.
| uses: actions/setup-java@v5 | ||
| with: | ||
| distribution: 'temurin' | ||
| java-version: ${{ matrix.java }} | ||
| check-latest: true | ||
| cache: 'gradle' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Reduce CI nondeterminism from Java updates.
check-latest: true can pull newly released patch builds mid-run and cause flaky diffs. Pin to the latest patch on a schedule, or disable check-latest for stability.
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- check-latest: true
+ check-latest: false
cache: 'gradle'📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{ matrix.java }} | |
| check-latest: true | |
| cache: 'gradle' | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{ matrix.java }} | |
| check-latest: false | |
| cache: 'gradle' |
🤖 Prompt for AI Agents
.github/workflows/gradle.yml around lines 20 to 25: the workflow uses
actions/setup-java@v5 with check-latest: true which can cause CI nondeterminism
by picking up new patch releases mid-run; change this to stabilize CI by either
setting check-latest to false or pinning java-version to a full patch version
(e.g., 17.0.x) and schedule periodic updates, so update the workflow to remove
or set check-latest: false or replace the matrix java entry with an explicit
full-version pin and document the update schedule.
| - name: ./gradlew build javadoc | ||
| run: ./gradlew build | ||
| - name: ./gradlew requireJavadoc | ||
| run: ./gradlew requireJavadoc | ||
| - name: ./gradlew spotlessCheck | ||
| run: ./gradlew spotlessCheck |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Streamline Gradle invocations and use --no-daemon in CI.
Multiple invocations re-do init work; --no-daemon is recommended in ephemeral runners.
- - name: ./gradlew build javadoc
- run: ./gradlew build
- - name: ./gradlew requireJavadoc
- run: ./gradlew requireJavadoc
- - name: ./gradlew spotlessCheck
- run: ./gradlew spotlessCheck
+ - name: Gradle build (build + requireJavadoc + spotlessCheck)
+ run: ./gradlew --no-daemon build requireJavadoc spotlessCheck📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: ./gradlew build javadoc | |
| run: ./gradlew build | |
| - name: ./gradlew requireJavadoc | |
| run: ./gradlew requireJavadoc | |
| - name: ./gradlew spotlessCheck | |
| run: ./gradlew spotlessCheck | |
| - name: Gradle build (build + requireJavadoc + spotlessCheck) | |
| run: ./gradlew --no-daemon build requireJavadoc spotlessCheck |
🤖 Prompt for AI Agents
.github/workflows/gradle.yml around lines 26 to 31: the workflow runs Gradle
three times which repeats initialization and doesn't use the recommended
--no-daemon flag for ephemeral CI runners; replace the three separate gradle
steps with a single invocation and add --no-daemon (for example run ./gradlew
--no-daemon build requireJavadoc spotlessCheck) so tasks run in one JVM and
avoid daemon overhead in CI, and adjust the step name accordingly.
Summary by CodeRabbit