Skip to content

Commit

Permalink
refactor(CI): separate Java bindings workflow
Browse files Browse the repository at this point in the history
Signed-off-by: Tarek <[email protected]>
  • Loading branch information
tareknaser committed Dec 19, 2024
1 parent 61cd3f5 commit 94c2d5b
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 124 deletions.
15 changes: 10 additions & 5 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
name: Run benchmarks
name: Run Benchmarks

on:
pull_request:
branches:
- main
workflow_run:
workflows:
- Verify Build
types:
- completed

jobs:
run_benchmarks:
name: Run Benchmarks
runs-on: ubuntu-latest

# Only run this job if the workflow run was triggered by a pull request
if: ${{ github.event.pull_request != null }}

steps:
- uses: actions/checkout@v4

- name: Run Criterion
uses: boa-dev/criterion-compare-action@v3
with:
branchName: ${{ github.base_ref }}
branchName: ${{ github.event.pull_request.base.ref }}
token: ${{ secrets.GITHUB_TOKEN }}
133 changes: 14 additions & 119 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Verify build
name: Verify Build

on:
push:
Expand All @@ -17,7 +17,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Nightly Rust with rustfmt
uses: dtolnay/rust-toolchain@stable
with:
Expand All @@ -27,108 +26,17 @@ jobs:
- name: Run rustfmt
run: cargo fmt --all -- --check

linux:
name: Build on 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: false

- name: Run tests
run: cargo test --verbose

- name: Build Release
run: cargo build --verbose --release

- name: Run `ark-cli watch` test
run: ./integration/ark-cli-watch.sh

- 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

windows:
name: Test on 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: false

- name: Run tests
run: cargo test --workspace --verbose

- name: Build Release
run: cargo build --verbose --release

- name: Run `ark-cli watch` test
run: ./integration/ark-cli-watch.sh

- 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

mac-intel:
name: Test on macOS Intel
runs-on: macos-14
build-and-test:
name: Build and Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, 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:
Expand All @@ -140,27 +48,14 @@ jobs:
- 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]
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
- name: Upload Release Build
uses: actions/upload-artifact@v3
with:
link-to-sdk: true
ndk-version: r28-beta2

- name: Java tests
run: gradle test
working-directory: ./java
name: release-build-${{ matrix.os }}
path: target/release/
46 changes: 46 additions & 0 deletions .github/workflows/java-bindings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Java Bindings

on:
workflow_run:
workflows:
- Verify Build
types:
- completed

jobs:
java-bindings:
name: Java Bindings
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-14]

steps:
- uses: actions/checkout@v4
- name: Download Build Artifacts
uses: actions/download-artifact@v3
with:
name: release-build-${{ matrix.os }}
path: ./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: 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

0 comments on commit 94c2d5b

Please sign in to comment.