Skip to content

Commit

Permalink
Merge 14b2fff into 66c9362
Browse files Browse the repository at this point in the history
  • Loading branch information
oluiscabral authored Jan 4, 2025
2 parents 66c9362 + 14b2fff commit aa5a35c
Show file tree
Hide file tree
Showing 18 changed files with 358 additions and 257 deletions.
20 changes: 0 additions & 20 deletions .github/workflows/benchmark.yml

This file was deleted.

133 changes: 63 additions & 70 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 @@ -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]
Expand All @@ -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 }}
82 changes: 82 additions & 0 deletions .github/workflows/cache.yml
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
58 changes: 58 additions & 0 deletions .github/workflows/release.yml
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

- 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 }}
Loading

0 comments on commit aa5a35c

Please sign in to comment.