Skip to content

Add initial unit tests #210

Add initial unit tests

Add initial unit tests #210

Workflow file for this run

name: Build
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
jobs:
rust:
strategy:
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Stable with rustfmt and clippy
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt, clippy
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Cargo build
run: ./gradlew cargoReleaseBuild
- name: Upload built artifacts
uses: actions/upload-artifact@v3
if: matrix.os == 'macos-latest'
with:
name: datafusion-jni-${{ matrix.os }}
if-no-files-found: error
path: "datafusion-jni/target/release/libdatafusion_jni.dylib"
retention-days: 3
- name: Upload built artifacts
uses: actions/upload-artifact@v3
if: matrix.os == 'ubuntu-latest'
with:
name: datafusion-jni-${{ matrix.os }}
if-no-files-found: error
path: "datafusion-jni/target/release/libdatafusion_jni.so"
retention-days: 3
- name: Upload built artifacts
uses: actions/upload-artifact@v3
if: matrix.os == 'windows-latest'
with:
name: datafusion-jni-${{ matrix.os }}
if-no-files-found: error
# note no "lib"
path: "datafusion-jni\\target\\release\\datafusion_jni.dll"
retention-days: 3
java:
needs:
- rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: "temurin"
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Download ubuntu artifacts
uses: actions/download-artifact@v3
with:
name: datafusion-jni-ubuntu-latest
path: datafusion-java/build/jni_libs/linux-x86_64
- name: Download windows artifacts
uses: actions/download-artifact@v3
with:
name: datafusion-jni-windows-latest
path: datafusion-java/build/jni_libs/windows-x86_64
- name: Download macos artifacts
uses: actions/download-artifact@v3
with:
name: datafusion-jni-macos-latest
path: datafusion-java/build/jni_libs/osx-x86_64
- name: List downloaded artifacts
run: tree datafusion-java/build/jni_libs
- name: Build and test
run: ./gradlew -PJNI_PATH=${{ github.workspace }}/datafusion-java/build/jni_libs/linux-x86_64 build
- name: Publish to Maven Local
run: ./gradlew publishToMavenLocal
- name: Upload built artifacts
uses: actions/upload-artifact@v3
with:
name: datafusion-java
if-no-files-found: error
path: ~/.m2/repository/io/github/datafusion-contrib/datafusion-java
retention-days: 3