Skip to content

Merge pull request #9331 from Tishj/arrow_dictionary_in_child #4

Merge pull request #9331 from Tishj/arrow_dictionary_in_child

Merge pull request #9331 from Tishj/arrow_dictionary_in_child #4

Workflow file for this run

name: Java JDBC
on:
workflow_dispatch:
repository_dispatch:
push:
branches:
- '**'
- '!main'
- '!feature'
tags:
- '**'
paths-ignore:
- '**.md'
- 'examples/**'
- 'test/**'
- 'tools/**'
- '!tools/jdbc/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Java.yml'
pull_request:
types: [opened, reopened, ready_for_review]
paths-ignore:
- '**.md'
- 'examples/**'
- 'test/**'
- 'tools/**'
- '!tools/jdbc/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Java.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{
github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha
}}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
java-linux-amd64:
name: Java Linux (amd64)
runs-on: ubuntu-latest
container:
image: quay.io/pypa/manylinux2014_x86_64
env:
GEN: ninja
ENABLE_EXTENSION_AUTOLOADING: 1
ENABLE_EXTENSION_AUTOINSTALL: 1
BUILD_JDBC: 1
BUILD_JEMALLOC: 1
BUILD_JSON: 1
FORCE_WARN_UNUSED: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/manylinux_2014_setup
with:
ninja-build: 1
ccache: 1
jdk: 1
- name: Build
shell: bash
run: make
- name: Java Tests
shell: bash
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: >
java -cp build/release/tools/jdbc/duckdb_jdbc.jar
org.duckdb.test.TestDuckDBJDBC
- name: Deploy
shell: bash
run: >
python3.7 scripts/asset-upload-gha.py
duckdb_jdbc-linux-amd64.jar=build/release/tools/jdbc/duckdb_jdbc.jar
- uses: actions/upload-artifact@v3
with:
name: java-linux-amd64
path: |
build/release/tools/jdbc/duckdb_jdbc.jar
java-linux-aarch64:
name: Java Linux (aarch64)
runs-on: ubuntu-latest
container: ubuntu:18.04
needs: java-linux-amd64
env:
GEN: ninja
BUILD_JDBC: 1
ENABLE_EXTENSION_AUTOLOADING: 1
ENABLE_EXTENSION_AUTOINSTALL: 1
OVERRIDE_JDBC_OS_ARCH: arm64
JAVA_HOME: ../../jdk8u345-b01
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/ubuntu_18_setup
with:
ccache: 1
aarch64_cross_compile: 1
- name: Install Stuff
shell: bash
run: >
curl -L https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u345-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u345b01.tar.gz | tar xvz
- name: Build
shell: bash
run: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ make
- name: Deploy
shell: bash
run: >
python3.7 scripts/asset-upload-gha.py
duckdb_jdbc-linux-aarch64.jar=build/release/tools/jdbc/duckdb_jdbc.jar
- uses: actions/upload-artifact@v3
with:
name: java-linux-aarch64
path: |
build/release/tools/jdbc/duckdb_jdbc.jar
java-windows-amd64:
name: Java Windows (arm64)
runs-on: windows-latest
needs: java-linux-amd64
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: "3.7"
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: >
python scripts/windows_ci.py
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR_PLATFORM=x64 -DJDBC_DRIVER=1 -DBUILD_EXTENSIONS=json -DENABLE_EXTENSION_AUTOLOADING=1 -DENABLE_EXTENSION_AUTOINSTALL=1
cmake --build . --config Release
- name: Java Tests
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
shell: bash
run: |
java -cp tools/jdbc/duckdb_jdbc.jar org.duckdb.test.TestDuckDBJDBC
- name: Deploy
shell: bash
run: >
python scripts/asset-upload-gha.py
duckdb_jdbc-windows-amd64.jar=tools/jdbc/duckdb_jdbc.jar
- uses: actions/upload-artifact@v3
with:
name: java-windows-amd64
path: |
tools/jdbc/duckdb_jdbc.jar
java-osx-universal:
name: Java OSX (Universal)
runs-on: macos-latest
needs: java-linux-amd64
env:
BUILD_JDBC: 1
BUILD_JSON: 1
OSX_BUILD_UNIVERSAL: 1
ENABLE_EXTENSION_AUTOLOADING: 1
ENABLE_EXTENSION_AUTOINSTALL: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: "3.7"
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' }}
- name: Build
shell: bash
run: make
- name: Java Tests
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
shell: bash
run: >
java -cp build/release/tools/jdbc/duckdb_jdbc.jar
org.duckdb.test.TestDuckDBJDBC
- name: Java Example
shell: bash
run: |
(cd examples/jdbc; make; make maven)
- name: Deploy
shell: bash
run: >
python scripts/asset-upload-gha.py
duckdb_jdbc-osx-universal.jar=build/release/tools/jdbc/duckdb_jdbc.jar
- uses: actions/upload-artifact@v3
with:
name: java-osx-universal
path: |
build/release/tools/jdbc/duckdb_jdbc.jar
java-combine:
name: Java Combine
runs-on: ubuntu-latest
needs:
- java-linux-aarch64
- java-linux-amd64
- java-windows-amd64
- java-osx-universal
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- shell: bash
run: mkdir jdbc-artifacts
- uses: actions/download-artifact@v3
with:
name: java-linux-aarch64
path: jdbc-artifacts/java-linux-aarch64
- uses: actions/download-artifact@v3
with:
name: java-linux-amd64
path: jdbc-artifacts/java-linux-amd64
- uses: actions/download-artifact@v3
with:
name: java-windows-amd64
path: jdbc-artifacts/java-windows-amd64
- uses: actions/download-artifact@v3
with:
name: java-osx-universal
path: jdbc-artifacts/java-osx-universal
- name: Combine JARs
shell: bash
run: |
if [[ "$GITHUB_REF" =~ ^(refs/heads/main|refs/tags/v.+)$ && "$GITHUB_REPOSITORY" = "duckdb/duckdb" ]] ; then
export XML='
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>ossrh</id>
<username>hfmuehleisen</username> <!-- Sonatype OSSRH JIRA user/pw -->
<password>PASSWORD</password>
</server>
</servers>
</settings> '
mkdir ~/.m2
echo $XML | sed "s/PASSWORD/${{ secrets.MAVEN_PASSWORD }}/" > ~/.m2/settings.xml
echo "${{ secrets.MAVEN_PGP_PK }}" | base64 -d > maven_pgp_key
gpg --import maven_pgp_key
python scripts/jdbc_maven_deploy.py ${{ github.ref_name }} jdbc-artifacts tools/jdbc
fi
ls -lahR jdbc-artifacts
- uses: actions/upload-artifact@v3
with:
name: java-jars
path: |
jdbc-artifacts
jdbc-compliance:
name: JDBC Compliance
runs-on: ubuntu-20.04
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
needs: java-linux-amd64
container: quay.io/pypa/manylinux2014_x86_64
env:
BUILD_JDBC: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/manylinux_2014_setup
with:
ninja-build: 1
ccache: 1
jdk: 1
- name: Install
shell: bash
run: |
git clone https://github.com/cwida/jdbccts.git
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make release
- name: Test
shell: bash
run: (cd jdbccts && make DUCKDB_JAR=../build/release/tools/jdbc/duckdb_jdbc.jar test)