Fix CI for WPILib 2027 alpha toolchain#14
Open
nlaverdure wants to merge 15 commits into
Open
Conversation
Switch build.yml to wpilib/roborio-cross-ubuntu:2027_alpha5-22.04 (JDK 25) and add required safe.directory git config step. Bump spotless.yml from JDK 17 to JDK 21 — required by google-java-format 1.28.0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
google-java-format 1.28.0 supports JDK 17; the JDK 25 issue was only with the default bundled version. Spotless CI was passing on 17. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
actions/checkout and actions/setup-java v4 use Node.js 20, which is removed from runners on September 16, 2026 (forced switch June 16). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
wpilib/roborio-cross-ubuntu has no 2027 alpha image. Since this branch is sim-only (no roboRIO deployment), drop the container and use Temurin JDK 21, which satisfies the minimum required by ReduxLib 2027. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
WPILib 2027 JNI libs require GLIBCXX_3.4.31 (GCC 13+), which ships with Ubuntu 24.04. Ubuntu 22.04 only provides up to 3.4.30. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces the bare ubuntu-24.04 runner + setup-java step with the WPILib-provided cross-build container, which bundles the 2027 toolchain. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Since the job runs inside wpilib/systemcore-cross-ubuntu, the host runner version is irrelevant — ubuntu-latest is sufficient. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename build.yml → build-systemcore.yml; switch to minimal container - Add build-simulation.yml using actions/setup-java for host-platform sim build Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The sim runs indefinitely; timeout 30 kills it after startup and treat exit code 124 (timeout) as success. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…radle cache Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
JVM ignores SIGPIPE so the pipe trick alone doesn't terminate it. Run Gradle in background, detect startup via tail+grep, then kill the entire process group. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setsid gives Gradle its own session/pgid so kill -- -$GRADLE_PID only terminates the sim, not the shell. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
wpilib/systemcore-cross-ubuntu-minimal:2027-24.04actions/setup-java(Temurin 21)actions/checkoutfrom v4 → v5 for Node.js 24 compatibility (forced switch June 16, 2026)🤖 Generated with Claude Code