mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
ci(shared): run jvmTest on pull requests
Add a path-filtered Shared KMP workflow so receive/send ViewModel and Compose foundation regressions fail CI. Runs on macOS arm64 because host Rust embedding for Linux JVM is disabled in the Gradle cargo config.
This commit is contained in:
95
.github/workflows/shared-kmp.yml
vendored
Normal file
95
.github/workflows/shared-kmp.yml
vendored
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
name: Shared KMP
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "shared/**"
|
||||||
|
- "crates/vnidrop/**"
|
||||||
|
- "Cargo.toml"
|
||||||
|
- "Cargo.lock"
|
||||||
|
- "gradle/**"
|
||||||
|
- "gradlew"
|
||||||
|
- "gradlew.bat"
|
||||||
|
- "build.gradle.kts"
|
||||||
|
- "settings.gradle.kts"
|
||||||
|
- "gradle.properties"
|
||||||
|
- "androidApp/**"
|
||||||
|
- "desktopApp/**"
|
||||||
|
- ".github/workflows/shared-kmp.yml"
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- "shared/**"
|
||||||
|
- "crates/vnidrop/**"
|
||||||
|
- "Cargo.toml"
|
||||||
|
- "Cargo.lock"
|
||||||
|
- "gradle/**"
|
||||||
|
- "gradlew"
|
||||||
|
- "gradlew.bat"
|
||||||
|
- "build.gradle.kts"
|
||||||
|
- "settings.gradle.kts"
|
||||||
|
- "gradle.properties"
|
||||||
|
- "androidApp/**"
|
||||||
|
- "desktopApp/**"
|
||||||
|
- ".github/workflows/shared-kmp.yml"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
jvm-test:
|
||||||
|
# Host Rust embedding is enabled only for the current Gobley host target.
|
||||||
|
# Linux/Windows JVM cargo builds are disabled in shared/build.gradle.kts, so
|
||||||
|
# jvmTest must run on macOS (arm64) to match local development.
|
||||||
|
runs-on: macos-latest
|
||||||
|
timeout-minutes: 75
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Set up Gradle
|
||||||
|
uses: gradle/actions/setup-gradle@v4
|
||||||
|
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
with:
|
||||||
|
targets: aarch64-apple-darwin,aarch64-linux-android
|
||||||
|
|
||||||
|
- name: Cache Cargo
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/git
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-shared-kmp-${{ hashFiles('Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-shared-kmp-
|
||||||
|
|
||||||
|
- name: Set up Android SDK
|
||||||
|
uses: android-actions/setup-android@v3
|
||||||
|
with:
|
||||||
|
packages: platform-tools platforms;android-36
|
||||||
|
|
||||||
|
- name: Set up Android NDK
|
||||||
|
uses: nttld/setup-ndk@v1
|
||||||
|
id: setup-ndk
|
||||||
|
with:
|
||||||
|
ndk-version: r27c
|
||||||
|
link-to-sdk: true
|
||||||
|
add-to-path: false
|
||||||
|
|
||||||
|
- name: Export Android NDK location
|
||||||
|
run: |
|
||||||
|
echo "ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }}" >> "$GITHUB_ENV"
|
||||||
|
echo "ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Run shared JVM tests
|
||||||
|
run: ./gradlew :shared:jvmTest --no-daemon --stacktrace
|
||||||
Reference in New Issue
Block a user