-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathx86_64-unknown-linux-android.yml
More file actions
88 lines (84 loc) · 4.01 KB
/
Copy pathx86_64-unknown-linux-android.yml
File metadata and controls
88 lines (84 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: x86_64-unknown-linux-android
on: [push, pull_request]
jobs:
setup-x86_64-unknown-linux-android:
name: Setup Android (x86_64)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create Test Runner Script
run: |
echo '#!/bin/bash' > run_android.sh
echo 'EXE_NAME=$(basename "$1")' >> run_android.sh
echo 'adb push "$1" "/data/local/tmp/$EXE_NAME" > /dev/null' >> run_android.sh
echo 'shift' >> run_android.sh
echo 'adb shell "chmod +x /data/local/tmp/$EXE_NAME && /data/local/tmp/$EXE_NAME $@"' >> run_android.sh
chmod +x run_android.sh
build-x86_64-unknown-linux-android:
name: Build Android (x86_64)
runs-on: ubuntu-latest
needs: setup-x86_64-unknown-linux-android
steps:
- uses: actions/checkout@v4
- name: Create Test Runner Script
run: |
echo '#!/bin/bash' > run_android.sh
echo 'EXE_NAME=$(basename "$1")' >> run_android.sh
echo 'adb push "$1" "/data/local/tmp/$EXE_NAME" > /dev/null' >> run_android.sh
echo 'shift' >> run_android.sh
echo 'adb shell "chmod +x /data/local/tmp/$EXE_NAME && /data/local/tmp/$EXE_NAME $@"' >> run_android.sh
chmod +x run_android.sh
- name: Configure CMake
run: |
cmake \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
-DTARGET=x86_64-unknown-linux-android \
-DANDROID_ABI=x86_64 \
-DANDROID_PLATFORM=android-29 \
-DCMAKE_CROSSCOMPILING_EMULATOR=$(pwd)/run_android.sh \
-B build
- name: Build
run: cmake --build build --config Debug
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-x86_64-unknown-linux-android
path: build/
test-x86_64-unknown-linux-android:
name: Test Android Emulator (x86_64)
runs-on: ubuntu-latest
needs: build-x86_64-unknown-linux-android
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-x86_64-unknown-linux-android
path: build/
- name: Create Test Runner Script
run: |
echo '#!/bin/bash' > run_android.sh
echo 'EXE_NAME=$(basename "$1")' >> run_android.sh
echo 'adb push "$1" "/data/local/tmp/$EXE_NAME" > /dev/null' >> run_android.sh
echo 'shift' >> run_android.sh
echo 'adb shell "chmod +x /data/local/tmp/$EXE_NAME && /data/local/tmp/$EXE_NAME $@"' >> run_android.sh
chmod +x run_android.sh
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run Tests on Emulator
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
arch: x86_64
target: google_apis
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -memory 8192 -no-metrics
disable-animations: true
script: |
# Wait for emulator to be fully ready
adb wait-for-device
adb shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 30; done'
cd build
ctest --output-on-failure