Fix edge cases: Use TRY_CAST for type conversions, convert cols to datetime before stringification #164
This file contains 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: java | |
on: | |
pull_request: | |
types: [ opened, synchronize ] | |
jobs: | |
build-test-java-linux-64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # [email protected] | |
- name: Install pixi | |
run: curl -fsSL https://pixi.sh/install.sh | bash && echo "${HOME}/.pixi/bin" >> $GITHUB_PATH | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('pixi.lock', 'Cargo.lock') }}-build-test-java-linux-64 | |
path: | | |
~/.cargo | |
target | |
.pixi | |
- name: Test Java | |
run: pixi run test-java | |
- name: Copy native lib | |
run: | | |
mkdir -p native/linux-64 | |
cp target/release/libvegafusion_jni.so native/linux-64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # [email protected] | |
with: | |
name: jni-native | |
path: | | |
native | |
build-test-java-osx-64: | |
runs-on: macos-11 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # [email protected] | |
- name: Install pixi | |
run: curl -fsSL https://pixi.sh/install.sh | bash && echo "${HOME}/.pixi/bin" >> $GITHUB_PATH | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('pixi.lock', 'Cargo.lock') }}-build-test-java-osx-64 | |
path: | | |
~/.cargo | |
target | |
.pixi | |
- name: Test Java | |
run: pixi run test-java | |
- name: Copy native lib | |
run: | | |
mkdir -p native/osx-64 | |
cp target/release/libvegafusion_jni.dylib native/osx-64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # [email protected] | |
with: | |
name: jni-native | |
path: | | |
native | |
build-java-osx-arm64: | |
runs-on: macos-11 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # [email protected] | |
- name: Install pixi | |
run: curl -fsSL https://pixi.sh/install.sh | bash && echo "${HOME}/.pixi/bin" >> $GITHUB_PATH | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('pixi.lock', 'Cargo.lock') }}-build-java-osx-arm64 | |
path: | | |
~/.cargo | |
target | |
.pixi | |
- name: Build jni library | |
run: | | |
pixi run python automation/download_rust_target.py aarch64-apple-darwin | |
pixi run build-jni --target aarch64-apple-darwin | |
- name: Copy native lib | |
run: | | |
mkdir -p native/osx-arm64 | |
cp target/aarch64-apple-darwin/release/libvegafusion_jni.dylib native/osx-arm64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # [email protected] | |
with: | |
name: jni-native | |
path: | | |
native | |
build-test-java-win-64: | |
runs-on: windows-2022 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # [email protected] | |
- name: Install pixi | |
run: | | |
iwr -useb https://pixi.sh/install.ps1 | iex | |
echo "${HOME}/AppData/Local/pixi/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('pixi.lock', 'Cargo.lock') }}-build-test-java-win-64 | |
path: | | |
~/.cargo | |
target | |
.pixi | |
- name: Test Java | |
run: pixi run test-java-win | |
- name: Copy native lib | |
run: | | |
mkdir -p native/win-64 | |
cp target/release/vegafusion_jni.dll native/win-64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # [email protected] | |
with: | |
name: jni-native | |
path: | | |
native | |
build-jar: | |
runs-on: ubuntu-20.04 | |
needs: | |
- build-test-java-linux-64 | |
- build-test-java-osx-64 | |
- build-java-osx-arm64 | |
- build-test-java-win-64 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # [email protected] | |
- name: Install pixi | |
run: curl -fsSL https://pixi.sh/install.sh | bash && echo "${HOME}/.pixi/bin" >> $GITHUB_PATH | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: ${{ runner.os }}-${{ hashFiles('pixi.lock', 'Cargo.lock') }}-build-jar | |
path: | | |
.pixi | |
- name: Download jni libs | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # [email protected] | |
with: | |
name: jni-native | |
path: jni-native | |
- name: Build jar | |
run: | | |
export VEGAFUSION_JNI_LIBRARIES=/home/runner/work/vegafusion/vegafusion/jni-native | |
pixi run build-jar | |
- name: Upload jar | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # [email protected] | |
with: | |
name: jar | |
path: | | |
java/lib/build/libs/vegafusion-*.jar | |
try-jar: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-20.04 | |
- macos-11 | |
- windows-2022 | |
runs-on: ${{ matrix.os }} | |
needs: [ build-jar ] | |
steps: | |
- name: Install Java | |
uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # pin@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Download jar | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # [email protected] | |
with: | |
name: jar | |
path: . | |
- name: Run jar (non-Windows) | |
if: ${{ runner.os != 'Windows' }} | |
run: | | |
java -jar vegafusion-*.jar | |
- name: Run jar (Windows) | |
if: ${{ runner.os == 'Windows' }} | |
run: | | |
$jarFile = Get-ChildItem -Path .\ -Filter "vegafusion-*.jar" | Select-Object -First 1 | |
java -jar $jarFile |