-
Notifications
You must be signed in to change notification settings - Fork 6
Build fs-storage and publish Java package
#94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6af1614
571aab6
560fca7
8ccb90e
0a76e96
475a94e
f5f4420
85a00ca
57a28c1
06db31b
6730418
68f478f
c80086b
2e77dfe
3c572a6
5cec424
b6c4d2c
5b1ea61
229b48f
78d058d
7e2bd8b
54d9665
736a206
ceef135
9cd65f3
0c1fa09
61cd3f5
14b2fff
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. getting this warning locally, and I can also see it in the CI: > Task :lib:compileReleaseJavaWithJavac
Java compiler version 22 has deprecated support for compiling with source/target version 8.
warning: [options] source value 8 is obsolete and will be removed in a future release
Try one of the following options:
1. [Recommended] Use Java toolchain with a lower language version
2. Set a higher source/target version
3. Use a lower version of the JDK running the build (if you're not using Java toolchain)
For more details on how to configure these settings, see https://developer.android.com/build/jdks.
To suppress this warning, set android.javaCompile.suppressSourceTargetDeprecationWarning=true in gradle.properties.
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm I see, I'll investigate it
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thank you
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Aaahh, that's why would be great to move all the Java code to
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. Maybe we could even move the JNI Rust related code to
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @oluiscabral exactly! do you think it's reasonable amount of work for the current pair of PRs, or should we merge these first, and proceed with refactoring in new PRs? |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| name: Verify build | ||
| name: Verify Build | ||
|
|
||
| on: | ||
| push: | ||
|
|
@@ -12,70 +12,70 @@ env: | |
| CARGO_TERM_COLOR: always | ||
|
|
||
| jobs: | ||
| linux: | ||
| name: Build on Linux | ||
| format: | ||
| name: Code Formatting Check | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| - name: Install Nightly Rust with rustfmt | ||
| uses: dtolnay/rust-toolchain@stable | ||
| with: | ||
| toolchain: nightly # nightly is required for fmt | ||
| components: rustfmt, clippy | ||
| toolchain: nightly | ||
| components: rustfmt | ||
|
|
||
| - name: Check | ||
| run: cargo check | ||
| - name: Run rustfmt | ||
| run: cargo fmt --all -- --check | ||
|
|
||
| - name: Format | ||
| run: | | ||
| cargo fmt --all -- --check | ||
| cargo clippy --workspace --bins -- -D warnings | ||
| build-and-test: | ||
| name: Build and Test | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| # We also run on macOS arm in the weekly workflow. | ||
| os: [ubuntu-latest, windows-latest, macos-14] | ||
|
|
||
| - name: Build Debug | ||
| run: cargo build --verbose | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: false | ||
|
|
||
| - name: Run tests | ||
| run: cargo test --verbose | ||
| run: cargo test --workspace --verbose | ||
|
|
||
| - name: Build Release | ||
| run: cargo build --verbose --release | ||
|
|
||
| # `ark-cli-watch.sh` script tests the functionality of `ark-cli watch`, | ||
| # which monitors a directory for file changes using a filesystem watcher and updates the index file. | ||
| # We need to run it on each platform to ensure it works across all OSes. | ||
| - name: Run `ark-cli watch` test | ||
| run: ./integration/ark-cli-watch.sh | ||
|
|
||
| - name: Install JDK | ||
| uses: actions/[email protected] | ||
| - name: Upload Release Build | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| distribution: "temurin" | ||
| java-version: "22" | ||
| name: release-build-${{ matrix.os }} | ||
| path: target/release/ | ||
|
|
||
| - name: Set up Gradle | ||
| uses: gradle/actions/setup-gradle@v3 | ||
|
|
||
| - name: Java tests | ||
| run: gradle test | ||
| working-directory: ./java | ||
|
|
||
| windows: | ||
| name: Test on Windows | ||
| runs-on: windows-latest | ||
| java-bindings: | ||
| name: Java Bindings | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-14] | ||
| needs: build-and-test | ||
|
|
||
| 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: Run `ark-cli watch` test | ||
| run: ./integration/ark-cli-watch.sh | ||
| - name: Download Build Artifacts | ||
| uses: actions/download-artifact@v3 | ||
| with: | ||
| name: release-build-${{ matrix.os }} | ||
| path: ./release | ||
|
|
||
| - name: Install JDK | ||
| uses: actions/[email protected] | ||
|
|
@@ -86,38 +86,31 @@ jobs: | |
| - name: Set up Gradle | ||
| uses: gradle/actions/setup-gradle@v3 | ||
|
|
||
| - name: Java tests | ||
| - name: Set up Android SDK | ||
| uses: android-actions/setup-android@v3 | ||
|
|
||
| - name: Set up Android NDK | ||
| uses: nttld/setup-ndk@v1 | ||
| with: | ||
| link-to-sdk: true | ||
| ndk-version: r28-beta2 | ||
|
|
||
| - name: Run Java Tests | ||
| run: gradle test | ||
| working-directory: ./java | ||
|
|
||
| mac-intel: | ||
| name: Test on macOS Intel | ||
| runs-on: macos-14 | ||
| benchmarks: | ||
| name: Run Benchmarks | ||
| runs-on: ubuntu-latest | ||
| needs: java-bindings | ||
| # We only want to run benchmarks in case of a pull request | ||
| if: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| 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: Run `ark-cli watch` test | ||
| run: ./integration/ark-cli-watch.sh | ||
|
|
||
| - name: Install JDK | ||
| uses: actions/[email protected] | ||
| - name: Run Criterion | ||
| uses: boa-dev/criterion-compare-action@v3 | ||
| 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 | ||
| branchName: ${{ github.base_ref }} | ||
| token: ${{ secrets.GITHUB_TOKEN }} | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,82 @@ | ||
| name: Cache build | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| pull_request: | ||
| branches: | ||
| - main | ||
|
|
||
| jobs: | ||
| linux: | ||
| name: Linux | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
|
|
||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: true | ||
|
|
||
| - name: Run tests | ||
| run: cargo test --workspace --verbose --release | ||
|
|
||
| windows: | ||
| name: Windows | ||
| runs-on: windows-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
|
|
||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: true | ||
|
|
||
| - name: Run tests | ||
| run: cargo test --workspace --verbose --release | ||
|
|
||
| mac-intel: | ||
| name: MacOS Intel | ||
| runs-on: macos-14 | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
|
|
||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: true | ||
|
|
||
| - name: Run tests | ||
| run: cargo test --workspace --verbose --release | ||
|
|
||
| mac-arm: | ||
| name: MacOS ARM | ||
| runs-on: macos-13-xlarge | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
|
|
||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: true | ||
|
|
||
| - name: Run tests | ||
| run: cargo test --workspace --verbose --release |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| name: Release | ||
|
|
||
| on: | ||
| push: | ||
| tags: | ||
| - "v[0-9]+.[0-9]+.[0-9]+" | ||
|
|
||
| jobs: | ||
| release: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| packages: write | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
| with: | ||
| targets: aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android | ||
|
|
||
|
Comment on lines
+20
to
+21
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could you add these targets to the instructions in
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good idea, do you mean to add a step-by-step on how to locally cross-compile the library?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. When I tried running this locally, it failed because I didn’t have these targets set up, and I had to debug it myself. It would be helpful to include a command for adding these targets as a perquisite, something like: rustup target add \
aarch64-linux-android \
armv7-linux-androideabi \
...
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, let’s include a note about the supported with an annoying error as well (I think it said something like
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @tareknaser this one seems to be resolved, right? |
||
| - name: Set up Cargo Cache | ||
| uses: Swatinem/rust-cache@v2 | ||
| with: | ||
| save-if: false | ||
|
|
||
| - 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: Set up Android SDK | ||
| uses: android-actions/setup-android@v3 | ||
|
|
||
| - name: Set up Android NDK | ||
| uses: nttld/setup-ndk@v1 | ||
| with: | ||
| link-to-sdk: true | ||
| ndk-version: r28-beta2 | ||
|
|
||
| - name: Java tests | ||
| run: gradle test | ||
| working-directory: ./java | ||
|
|
||
| - name: Publish Java release | ||
| run: | | ||
| export RELEASE_VERSION=$(echo "${{ github.ref_name }}" | cut -c2-) | ||
| gradle publish | ||
| working-directory: ./java | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
Uh oh!
There was an error while loading. Please reload this page.