Viewing is open to everyone. Downloading and starring need a GitHub sign-in. Sign in with GitHub

sdk-android.yml

v0.1.0-build.85 Latest Commit ede38f5

Size
3.6 KB
Lines
97
Language
yaml
SHA-256
992455dff3fe…
View on GitHub

Sign in with GitHub to download. Each download is recorded with your GitHub username.

1name: SDK Android
2on:
3 push:
4 paths:
5 - "sdk/android/**"
6 - "src/**"
7 - "include/**"
8 - "VERSION"
9 - ".github/workflows/sdk-android.yml"
10 pull_request:
11 paths:
12 - "sdk/android/**"
13 - "src/**"
14 - "include/**"
15 - "VERSION"
16 - ".github/workflows/sdk-android.yml"
17 workflow_dispatch:
18 workflow_call: # the release workflow builds release packages with this file
19permissions:
20 contents: read
21concurrency:
22 group: sdk-android-${{ github.ref }}
23 cancel-in-progress: true
24env:
25 GRADLE_VERSION: "8.10.2"
26jobs:
27 # JNI bridge on a desktop JVM: signature check (javac -h), host build of
28 # libckey_jni.so from the core sources, Java harness round trips, and the
29 # Kotlin sources + JUnit tests compiled with Gradle's embedded compiler.
30 jni-host:
31 runs-on: ubuntu-24.04
32 steps:
33 - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
34 - uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4
35 with:
36 distribution: temurin
37 java-version: "21"
38 - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4
39 with:
40 gradle-version: ${{ env.GRADLE_VERSION }}
41 - name: Host JNI harness
42 run: sdk/android/jni-host-test/run.sh
43
44 # The real Android build: AAR for every ABI via the NDK, unit tests, and a
45 # Maven publication to a local directory (no credentials).
46 gradle:
47 runs-on: ubuntu-24.04
48 steps:
49 - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
50 - uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4
51 with:
52 distribution: temurin
53 java-version: "17"
54 - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4
55 with:
56 gradle-version: ${{ env.GRADLE_VERSION }}
57 - name: Build, unit test, publish locally
58 run: >
59 gradle -p sdk/android --no-daemon --stacktrace
60 :ckey:testDebugUnitTest
61 assembleRelease
62 publishAllPublicationsToLocalRepository
63 - name: Scan-only and render-only native variants
64 run: |
65 gradle -p sdk/android --no-daemon :ckey:assembleRelease -Pckey.native.render=false -Pckey.native.telemetry=false
66 gradle -p sdk/android --no-daemon :ckey:assembleRelease -Pckey.native.scan=false
67 - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
68 with:
69 name: ckey-android-maven
70 path: sdk/android/build/maven
71 if-no-files-found: error
72
73 # Instrumented round trips on an emulator (x86_64, KVM).
74 instrumented:
75 runs-on: ubuntu-24.04
76 timeout-minutes: 45
77 steps:
78 - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
79 - uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4
80 with:
81 distribution: temurin
82 java-version: "17"
83 - uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4
84 with:
85 gradle-version: ${{ env.GRADLE_VERSION }}
86 - name: Enable KVM
87 run: |
88 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
89 sudo udevadm control --reload-rules
90 sudo udevadm trigger --name-match=kvm
91 - uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # v2
92 with:
93 api-level: 30
94 arch: x86_64
95 target: default
96 disable-animations: true
97 script: gradle -p sdk/android --no-daemon :ckey:connectedDebugAndroidTest