mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
Merge pull request #5 from vnidrop/feat/kmp-ci
ci(shared): add thin KMP jvmTest workflow
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