Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 42 additions & 32 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,35 +18,19 @@ env:
RUSTFLAGS: -D warnings

jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: cargo fmt --check

check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: cargo check --locked --workspace --all-targets

clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --locked --workspace --all-targets

test:
rust:
name: Rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- run: cargo fmt --all --check
- run: cargo clippy --locked --workspace --all-targets
- run: cargo nextest run --locked --workspace

js-lint:
js:
name: JS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -55,20 +39,32 @@ jobs:
node-version-file: .node-version
cache: npm
- run: npm ci
- run: npm --workspaces run format
- run: npm --workspaces run lint

js-format:
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: rustup component add llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: taiki-e/install-action@nextest
- name: Generate coverage
run: cargo llvm-cov nextest --workspace --cobertura --output-path cobertura.xml
env:
RUSTFLAGS: ""
- name: Coverage report
uses: clearlyip/code-coverage-report-action@v6
id: coverage
with:
node-version-file: .node-version
cache: npm
- run: npm ci
- run: npm --workspaces run format
filename: cobertura.xml
- name: Coverage summary
run: echo "${{ steps.coverage.outputs.markdownReport }}" >> $GITHUB_STEP_SUMMARY

bindings:
name: Native / Generate bindings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -84,14 +80,17 @@ jobs:
path: packages/app-mobile/android/src/main/java/uniffi/

build-ios:
name: Native / Build iOS
if: false
runs-on: macos-26
needs: bindings
timeout-minutes: 30
needs: [rust, js, bindings]
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: >-
rustup target add
aarch64-apple-ios
rustup target add
aarch64-apple-ios
aarch64-apple-ios-sim
- uses: actions/download-artifact@v4
with:
Expand Down Expand Up @@ -136,8 +135,10 @@ jobs:
path: packages/app-mobile/example/artifact/appmobileexample.zip

build-android:
name: Native / Build Android
runs-on: ubuntu-latest
needs: bindings
timeout-minutes: 30
needs: [rust, js, bindings]
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
Expand Down Expand Up @@ -175,3 +176,12 @@ jobs:
with:
name: appmobileexample-android
path: packages/app-mobile/example/android/app/build/outputs/apk/debug/app-debug.apk

ci-pass:
name: CI
if: always()
needs: [rust, js, coverage, build-ios, build-android]
runs-on: ubuntu-latest
steps:
- run: exit 1
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
Loading