Miscalculation on stack reservations. Maybe fixed? #109
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |