Skip to content

Build fs-storage and publish Java package #421

Build fs-storage and publish Java package

Build fs-storage and publish Java package #421

Workflow file for this run

name: Verify build
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
CARGO_TERM_COLOR: always
jobs:
linux:
name: Build on Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly # nightly is required for fmt
components: rustfmt, clippy
- name: Check
run: cargo check
- name: Format
run: |
cargo fmt --all -- --check
cargo clippy --workspace --bins -- -D warnings
- name: Build Debug
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
- name: Build Release
run: cargo build --verbose --release
- name: Install JDK
uses: actions/[email protected]
with:
distribution: "temurin"
java-version: "22"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3
- name: Java tests
run: gradle test
working-directory: ./java
- name: Publish Java release
run: gradle publish
working-directory: ./java
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Release fs-storage NDK binaries
- name: Install cargo-ndk
run: cargo install cargo-ndk
- name: Add Rust Toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
- name: Build fs-storage
run: cargo ndk -o ./target/release/fs-storage/jniLibs --target aarch64-linux-android --target armv7-linux-androideabi --target i686-linux-android --target x86_64-linux-android build -p fs-storage --release
- name: Upload fs-storage
uses: actions/upload-artifact@v4
with:
name: fs-storage
path: ./target/release/fs-storage/jniLibs
windows:
name: Test on Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build Release
run: cargo build --verbose --release
- name: Run tests
run: cargo test --workspace --verbose
- name: Install JDK
uses: actions/[email protected]
with:
distribution: "temurin"
java-version: "22"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3
- name: Java tests
run: gradle test
working-directory: ./java
mac-intel:
name: Test on macOS Intel
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build Release
run: cargo build --verbose --release
- name: Run tests
run: cargo test --workspace --verbose
- name: Install JDK
uses: actions/[email protected]
with:
distribution: "temurin"
java-version: "22"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3
- name: Java tests
run: gradle test
working-directory: ./java