Skip to content

Commit 523af40

Browse files
committed
ci: build and release questdb-client on JDK 8
The Maven Central release pipeline compiled, tested, and deployed the artifact on JDK 11 (and built the native libraries on GraalVM JDK 25), while ci.yml already treats JDK 8 as the source of truth. On JDK 11 the java11+ Maven profile auto-activates, producing a Java 11 artifact (class-file v52 -> v55, src/main/java11 shim, logback 1.5.x) that a JDK 8 runtime cannot load -- contradicting the "ships as a Java 8 artifact, released from JDK 8" contract. Move the whole release workflow to JDK 8: - resolve, build-macos, verify, publish, open-bump-pr: setup-java 11 -> 8, so the java8 profile activates and verify/publish build & ship the real Java 8 artifact (source/target 1.8, src/main/java8, logback 1.3.x). - Native builds (linux x86-64/aarch64, windows cross-compile): replace GraalVM JDK 25 with Temurin JDK 8 via the Adoptium latest-GA redirect. The native build only consumes $JAVA_HOME/include JNI headers (core/CMakeLists.txt) and the JNI ABI is stable, so JDK 8 headers are the correct floor. The Windows jni_md.h now comes from openjdk/jdk8u. YAML validated; Adoptium download URLs and the jdk8u jni_md.h path were confirmed to resolve.
1 parent 236ea59 commit 523af40

1 file changed

Lines changed: 37 additions & 31 deletions

File tree

.github/workflows/maven_central_release.yml

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ jobs:
7272
ref: ${{ inputs.source_ref }}
7373
fetch-depth: 0
7474

75-
- name: Set up Java 11
75+
- name: Set up Java 8
7676
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
7777
with:
7878
distribution: temurin
79-
java-version: "11"
79+
java-version: "8"
8080
cache: maven
8181

8282
- name: Resolve versions and guard against re-release
@@ -168,11 +168,11 @@ jobs:
168168
ref: ${{ needs.resolve.outputs.source_sha }}
169169
submodules: true
170170

171-
- name: Set up Java 11
171+
- name: Set up Java 8
172172
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
173173
with:
174174
distribution: temurin
175-
java-version: "11"
175+
java-version: "8"
176176

177177
- name: Install toolchains
178178
run: |
@@ -256,13 +256,15 @@ jobs:
256256
tar -zxf cmake-3.29.2-linux-x86_64.tar.gz
257257
echo "PATH=$(pwd)/cmake-3.29.2-linux-x86_64/bin/:$PATH" >> "$GITHUB_ENV"
258258
259-
- name: Install GraalVM JDK 25
259+
- name: Install Temurin JDK 8
260260
run: |
261-
# TODO(pin): replace /25/latest/ with an exact GraalVM build URL and verify a sha256.
262-
wget -nv -O graalvm.tar.gz https://download.oracle.com/graalvm/25/latest/graalvm-jdk-25_linux-x64_bin.tar.gz
263-
mkdir graalvm
264-
tar xfz graalvm.tar.gz -C graalvm --strip-components=1
265-
echo "JAVA_HOME=$(pwd)/graalvm" >> "$GITHUB_ENV"
261+
# Build the native lib against the Java 8 JNI headers -- JDK 8 is the artifact's
262+
# floor. The Adoptium "latest GA" redirect tracks the newest 8u release.
263+
# TODO(pin): pin to an exact Temurin 8u build URL and verify a sha256.
264+
wget -nv -O jdk8.tar.gz https://api.adoptium.net/v3/binary/latest/8/ga/linux/x64/jdk/hotspot/normal/eclipse
265+
mkdir jdk8
266+
tar xfz jdk8.tar.gz -C jdk8 --strip-components=1
267+
echo "JAVA_HOME=$(pwd)/jdk8" >> "$GITHUB_ENV"
266268
267269
- name: Build native library
268270
run: |
@@ -320,13 +322,15 @@ jobs:
320322
yum update -y
321323
yum install wget nasm zstd -y
322324
323-
- name: Install GraalVM JDK 25
325+
- name: Install Temurin JDK 8
324326
run: |
325-
# TODO(pin): replace /25/latest/ with an exact GraalVM build URL and verify a sha256.
326-
wget -v --timeout=180 -O graalvm.tar.gz https://download.oracle.com/graalvm/25/latest/graalvm-jdk-25_linux-aarch64_bin.tar.gz
327-
mkdir graalvm
328-
tar xfz graalvm.tar.gz -C graalvm --strip-components=1
329-
echo "JAVA_HOME=$(pwd)/graalvm" >> "$GITHUB_ENV"
327+
# Build the native lib against the Java 8 JNI headers -- JDK 8 is the artifact's
328+
# floor. The Adoptium "latest GA" redirect tracks the newest 8u release.
329+
# TODO(pin): pin to an exact Temurin 8u build URL and verify a sha256.
330+
wget -v --timeout=180 -O jdk8.tar.gz https://api.adoptium.net/v3/binary/latest/8/ga/linux/aarch64/jdk/hotspot/normal/eclipse
331+
mkdir jdk8
332+
tar xfz jdk8.tar.gz -C jdk8 --strip-components=1
333+
echo "JAVA_HOME=$(pwd)/jdk8" >> "$GITHUB_ENV"
330334
331335
- name: Build native library
332336
run: |
@@ -382,19 +386,21 @@ jobs:
382386
sudo apt-get update -y
383387
sudo apt-get install -y nasm gcc-mingw-w64 g++-mingw-w64
384388
385-
- name: Install GraalVM JDK 25
389+
- name: Install Temurin JDK 8
386390
run: |
387-
# TODO(pin): replace /25/latest/ with an exact GraalVM build URL and verify a sha256.
388-
wget -nv -O graalvm.tar.gz https://download.oracle.com/graalvm/25/latest/graalvm-jdk-25_linux-x64_bin.tar.gz
389-
mkdir graalvm
390-
tar xfz graalvm.tar.gz -C graalvm --strip-components=1
391-
echo "JAVA_HOME=$(pwd)/graalvm" >> "$GITHUB_ENV"
391+
# Host JDK only supplies the shared JNI header (jni.h); the Windows-specific
392+
# jni_md.h is fetched below. JDK 8 is the artifact's floor.
393+
# TODO(pin): pin to an exact Temurin 8u build URL and verify a sha256.
394+
wget -nv -O jdk8.tar.gz https://api.adoptium.net/v3/binary/latest/8/ga/linux/x64/jdk/hotspot/normal/eclipse
395+
mkdir jdk8
396+
tar xfz jdk8.tar.gz -C jdk8 --strip-components=1
397+
echo "JAVA_HOME=$(pwd)/jdk8" >> "$GITHUB_ENV"
392398
393-
- name: Download Windows jni_md.h from JDK 25
399+
- name: Download Windows jni_md.h from JDK 8
394400
run: |
395401
cd core
396-
# TODO(pin): pin to a jdk25u tag/commit instead of the moving `master` branch.
397-
curl -fsSL https://raw.githubusercontent.com/openjdk/jdk25u/master/src/java.base/windows/native/include/jni_md.h > "$JAVA_HOME/include/jni_md.h"
402+
# TODO(pin): pin to a jdk8u tag/commit instead of the moving `master` branch.
403+
curl -fsSL https://raw.githubusercontent.com/openjdk/jdk8u/master/jdk/src/windows/javavm/export/jni_md.h > "$JAVA_HOME/include/jni_md.h"
398404
399405
- name: Build native library
400406
run: |
@@ -443,11 +449,11 @@ jobs:
443449
with:
444450
ref: ${{ needs.resolve.outputs.source_sha }}
445451

446-
- name: Set up Java 11
452+
- name: Set up Java 8
447453
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
448454
with:
449455
distribution: temurin
450-
java-version: "11"
456+
java-version: "8"
451457
cache: maven
452458

453459
- name: Download native artifacts
@@ -537,11 +543,11 @@ jobs:
537543
exit 1
538544
fi
539545
540-
- name: Set up Java 11
546+
- name: Set up Java 8
541547
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
542548
with:
543549
distribution: temurin
544-
java-version: "11"
550+
java-version: "8"
545551
cache: maven
546552

547553
- name: Download native artifacts
@@ -741,11 +747,11 @@ jobs:
741747
ref: ${{ inputs.source_ref }}
742748
fetch-depth: 0
743749

744-
- name: Set up Java 11
750+
- name: Set up Java 8
745751
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
746752
with:
747753
distribution: temurin
748-
java-version: "11"
754+
java-version: "8"
749755
cache: maven
750756

751757
- name: Open next-development-version bump PR

0 commit comments

Comments
 (0)