Skip to content

feat(qwp): connect timeout, ingest callbacks, and lazy_connect (tolerant startup) on the QuestDB facade #61

feat(qwp): connect timeout, ingest callbacks, and lazy_connect (tolerant startup) on the QuestDB facade

feat(qwp): connect timeout, ingest callbacks, and lazy_connect (tolerant startup) on the QuestDB facade #61

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
# JDK 8 is the source of truth: the client ships as a Java 8 artifact
# (io.questdb:questdb-client) and is released from JDK 8, so on JDK 8 it must
# compile, the full test suite must pass, and the javadoc jar must build
# (-P javadoc attaches it at the package phase). The native libraries are no
# longer committed, so this job compiles libquestdb.so from source (hence the
# zstd submodule + cmake/nasm/build-essential toolchain) before the tests run.
build-jdk8:
name: Build, test & javadoc (JDK 8)
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Check out
uses: actions/checkout@v4
with:
# zstd is required to compile the native library.
submodules: recursive
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "8"
cache: maven
- name: Install native build toolchain
run: sudo apt-get update && sudo apt-get install -y cmake nasm build-essential
- name: Build native libquestdb.so
# JAVA_HOME points at the JDK 8 above, so the lib is compiled against the
# Java 8 JNI headers -- the artifact's floor. Copy it into src resources
# (not target/) so it survives the `mvn clean` in the next step and gets
# packaged + loaded via the production bin/<platform> path.
run: |
cd core
cmake -DCMAKE_BUILD_TYPE=Release -B cmake-build-release -S.
cmake --build cmake-build-release --config Release
test -f target/classes/io/questdb/client/bin-local/libquestdb.so
mkdir -p src/main/resources/io/questdb/client/bin/linux-x86-64
cp target/classes/io/questdb/client/bin-local/libquestdb.so \
src/main/resources/io/questdb/client/bin/linux-x86-64/libquestdb.so
- name: Compile, test, and build javadoc
run: mvn -B -ntp -P javadoc clean install
# The client is also consumed as a submodule of the main questdb repo, which
# builds on JDK 25. Guard against JDK 25 compile breakage (main + test
# sources, both modules) and confirm the javadoc jar builds on JDK 25 too
# (-P javadoc attaches it at the package phase). Do NOT run the tests -- the
# parent repo runs them against a real server.
compile-jdk25:
name: Compile & javadoc smoke (JDK 25)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "25"
cache: maven
- name: Compile (main + test) and build javadoc (no tests run)
run: mvn -B -ntp -P javadoc -DskipTests clean package