Skip to content

Update duckdb_jdbc to 1.5.3.0 (#1724) #4108

Update duckdb_jdbc to 1.5.3.0 (#1724)

Update duckdb_jdbc to 1.5.3.0 (#1724) #4108

Workflow file for this run

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