feat(qwp): connect timeout, ingest callbacks, and lazy_connect (tolerant startup) on the QuestDB facade #46
Workflow file for this run
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
| 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 |