Update duckdb_jdbc to 1.5.3.0 (#1724) #4108
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 | |
| workflow_dispatch: | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: read | |
| outputs: | |
| src: ${{ steps.filter.outputs.src }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dorny/paths-filter@v4 | |
| id: filter | |
| with: | |
| filters: | | |
| src: | |
| - '.github/workflows/test.yml' | |
| - 'project/**' | |
| - '**.scala' | |
| - '**.sbt' | |
| - '**.conf' | |
| - 'wvlet-*/**.json' | |
| - '**.wv' | |
| - 'wvlet-*/**.js' | |
| - 'wvlet-*/**.html' | |
| - 'wvlet-*/**.css' | |
| - 'wvlet-*/**.ts' | |
| - 'package.json' | |
| - 'pnpm-lock.yaml' | |
| - 'pnpm-workspace.yaml' | |
| - SCALA_VERSION | |
| code_format: | |
| name: Code format | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: scalafmt | |
| run: ./sbt scalafmtCheckAll | |
| test_scala_3: | |
| name: Scala 3 | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| cache: sbt | |
| - name: Scala 3.x test | |
| run: ./sbt projectJVM/test | |
| - name: Publish Test Report | |
| uses: mikepenz/action-junit-report@v6 | |
| if: always() # always run even if the previous step fails | |
| with: | |
| report_paths: '**/target/test-reports/TEST-*.xml' | |
| check_name: Test Report Scala 3.x | |
| annotate_only: true | |
| detailed_summary: true | |
| test_js: | |
| name: Scala.js | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| cache: sbt | |
| - uses: pnpm/action-setup@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: pnpm | |
| cache-dependency-path: ./pnpm-lock.yaml | |
| - name: Install pnpm dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install libduckdb | |
| # Required by wvlet-lang.js's DuckDB backend (koffi loads libduckdb via FFI). | |
| # Same install path as test_native — pull the prebuilt artifact from DuckDB's | |
| # GitHub release into /usr/local/lib so koffi finds it. Version pinned via the | |
| # DUCKDB_VERSION file at the repo root (same source the Native job reads). | |
| run: | | |
| DUCKDB_VERSION=$(cat DUCKDB_VERSION) | |
| curl -sSfL -o /tmp/libduckdb.zip \ | |
| "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-amd64.zip" | |
| mkdir -p /tmp/libduckdb && unzip -q /tmp/libduckdb.zip -d /tmp/libduckdb | |
| sudo cp /tmp/libduckdb/libduckdb.so /usr/local/lib/ | |
| sudo ldconfig | |
| - name: Scala.js test | |
| run: JVM_OPTS=-Xmx4g ./sbt "projectJS/test" | |
| - name: Packaging wvlet-cli | |
| run: JVM_OPTS=-Xmx4g ./sbt "cli/packArchiveTgz" | |
| - name: Publish Test Report | |
| uses: mikepenz/action-junit-report@v6 | |
| if: always() # always run even if the previous step fails | |
| with: | |
| report_paths: '**/target/test-reports/TEST-*.xml' | |
| check_name: Test Report Scala.js | |
| annotate_only: true | |
| detailed_summary: true | |
| test_playground: | |
| name: Playground | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| cache: sbt | |
| - uses: pnpm/action-setup@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: pnpm | |
| cache-dependency-path: 'pnpm-lock.yaml' | |
| - name: Install pnpm dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build Scala.js | |
| run: JVM_OPTS=-Xmx4g ./sbt "playground/fullLinkJS" | |
| - name: Build playground web site | |
| run: pnpm run build-playground | |
| test_native: | |
| name: Scala Native | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src == 'true' && (github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'pull_request') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| cache: sbt | |
| - name: Install native dependencies | |
| # libcurl4-openssl-dev provides the unversioned libcurl.so symlink that the linker | |
| # needs when @link("curl") (via uni's CurlBindings) becomes reachable through the | |
| # cross-platform Trino client. | |
| run: sudo apt-get update && sudo apt-get install -y libgc-dev libcurl4-openssl-dev | |
| - name: Install libduckdb | |
| # Ubuntu doesn't ship libduckdb-dev; pull the prebuilt artifact from DuckDB's | |
| # GitHub release and drop it into /usr/local/{lib,include}. Required for | |
| # wvc's @link("duckdb") schema-inference binding. Version pinned via the | |
| # DUCKDB_VERSION file at the repo root (same source the Scala.js job reads). | |
| run: | | |
| DUCKDB_VERSION=$(cat DUCKDB_VERSION) | |
| curl -sSfL -o /tmp/libduckdb.zip \ | |
| "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-amd64.zip" | |
| mkdir -p /tmp/libduckdb && unzip -q /tmp/libduckdb.zip -d /tmp/libduckdb | |
| sudo cp /tmp/libduckdb/libduckdb.so /usr/local/lib/ | |
| sudo cp /tmp/libduckdb/duckdb.h /usr/local/include/ | |
| sudo ldconfig | |
| - name: Scala Native test | |
| run: ./sbt projectNative/test | |
| - name: Publish Test Report | |
| uses: mikepenz/action-junit-report@v6 | |
| if: always() # always run even if the previous step fails | |
| with: | |
| report_paths: '**/target/test-reports/TEST-*.xml' | |
| check_name: Test Report Scala Native | |
| annotate_only: true | |
| detailed_summary: true |