From c885d907d80745ad560f13117cbfeee395cc9ed4 Mon Sep 17 00:00:00 2001 From: Kris Bennett <13557788+kbennett2000@users.noreply.github.com> Date: Mon, 22 Jun 2026 13:34:04 -0600 Subject: [PATCH 1/2] ci: bump ORT Compliance JDK to 25 (fixes UnsupportedClassVersionError) The "Install ORT" step downloads ORT's floating releases/latest. ORT's current release targets Java 25 (class file 69.0), but the job pinned setup-java to JDK 21 (class file 65.0), so `ort` failed at launch with UnsupportedClassVersionError on every PR. Bump the runtime JDK to 25 to match. Comment added so the coupling to ORT's floating latest is explicit. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ort-compliance.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ort-compliance.yml b/.github/workflows/ort-compliance.yml index b27871ae..0520fd0a 100644 --- a/.github/workflows/ort-compliance.yml +++ b/.github/workflows/ort-compliance.yml @@ -23,7 +23,10 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: "21" + # Must track the JRE the "Install ORT" step's floating releases/latest needs. + # ORT's latest release targets Java 25 (class file 69.0); JDK 21 throws + # UnsupportedClassVersionError. Bump this if ORT raises its baseline again. + java-version: "25" - name: Install ORT run: | From 3b06d0ae22ab8fa710865ebf88dcb5992a5b852b Mon Sep 17 00:00:00 2001 From: Kris Bennett <13557788+kbennett2000@users.noreply.github.com> Date: Mon, 22 Jun 2026 13:37:40 -0600 Subject: [PATCH 2/2] ci: pin ORT to 88.0.0 on JDK 21 (fix ORT Compliance) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amends the JDK-25 approach. ORT 89.0.0+ raised its launch baseline to Java 25, but even under JDK 25 its bundled Gradle Inspector (Gradle 8.13) cannot parse Java 25 bytecode ("Unsupported class file major version 69"), so bumping the runner JDK only moves the failure downstream. Instead pin ORT to 88.0.0 — the last release that both launches and resolves the Gradle project on JDK 21 (the combo that was green on main on 2026-06-10) — and keep setup-java at 21. Replaces the floating releases/latest with a tagged download so the toolchain is reproducible. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ort-compliance.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ort-compliance.yml b/.github/workflows/ort-compliance.yml index 0520fd0a..4bd2e540 100644 --- a/.github/workflows/ort-compliance.yml +++ b/.github/workflows/ort-compliance.yml @@ -23,14 +23,17 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - # Must track the JRE the "Install ORT" step's floating releases/latest needs. - # ORT's latest release targets Java 25 (class file 69.0); JDK 21 throws - # UnsupportedClassVersionError. Bump this if ORT raises its baseline again. - java-version: "25" + java-version: "21" - name: Install ORT run: | - ORT_URL=$(curl -s https://api.github.com/repos/oss-review-toolkit/ort/releases/latest \ + # Pin ORT (was floating releases/latest). ORT 89.0.0+ requires Java 25 to launch, + # and even on JDK 25 its bundled Gradle Inspector (Gradle 8.13) can't parse Java 25 + # bytecode ("Unsupported class file major version 69") — so chasing the JDK baseline + # just moves the break. 88.0.0 is the last release that runs cleanly on JDK 21 (the + # combo that was green on main). Revisit when ORT's Gradle Inspector supports Java 25. + ORT_VERSION="88.0.0" + ORT_URL=$(curl -s "https://api.github.com/repos/oss-review-toolkit/ort/releases/tags/${ORT_VERSION}" \ | jq -r '.assets[] | select(.name | test("^ort-.*\\.tgz$")) | .browser_download_url') curl -L -o ort.tgz "$ORT_URL" tar -xzf ort.tgz