diff options
| author | KreitinnSoftware <80591934+KreitinnSoftware@users.noreply.github.com> | 2024-02-14 05:14:01 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-14 09:14:01 +0100 |
| commit | 549e042e678e0909c1a79325fb406fb0081ccac7 (patch) | |
| tree | f05a9323a5d22d14f60c3ce3bc6f61b3d9a579fb /.github | |
| parent | c70581abc9380ab57deba3f8076e26191b5c2755 (diff) | |
| download | box64-549e042e678e0909c1a79325fb406fb0081ccac7.tar.gz box64-549e042e678e0909c1a79325fb406fb0081ccac7.zip | |
[CI] Add Android Tests (#1263)
* [CI] Add Android Tests * Remove a Build of Box64 that I placed and forgot to remove before * Fix some tests checking * Disable Test07 and Test17 for now * Comment set_tests_proprieties (I have forgotten) * Add mmx test and benchfloat for Android * Fix build for Clang-17 on non-Termux * Update NDK to 26b and add Termux Build/Testing * Revert to NDK 25b, something is wrong * Add -DTERMUX=1 to Termux Build * Add LD_LIBRARY_PATH for Termux Testing * Set LD_LIBRARY_PATH on QEMU_SET_ENV * Move data folder to current dir before testing on Termux * Copy Termux Data Libs for /data * Try to set QEMU_SET_ENV on GITHUB_ENV --------- Co-authored-by: Pablo Carlos <pablo@localhost.localdomain>
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/release.yml | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 06360998..bb532570 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RPI5ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845, SD888, ADLINK, ARM64, ANDROID] + platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RPI5ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845, SD888, ADLINK, ARM64, ANDROID, TERMUX] type: [Release, Trace] os: [ubuntu-latest] include: @@ -48,16 +48,39 @@ jobs: sudo apt-get update if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'OTHER_ARM' && ${{ matrix.platform }} != 'RISCV' ]]; then sudo apt-get -y install git cmake make python3 - if [[ ${{ matrix.platform }} == 'ANDROID' ]]; then + if [[ ${{ matrix.platform }} == 'ANDROID' || ${{ matrix.platform }} == 'TERMUX' ]]; then wget https://dl.google.com/android/repository/android-ndk-r25b-linux.zip unzip android-ndk-r25b-linux.zip echo "BOX64_COMPILER=$PWD/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang" >> $GITHUB_ENV echo "BOX64_PLATFORM_MARCRO=-DANDROID=1 -DARM_DYNAREC=1 -DBAD_SIGNAL=1" >> $GITHUB_ENV + wget https://sinalbr.dl.sourceforge.net/project/waydroid/images/system/lineage/waydroid_arm64/lineage-18.1-20240210-VANILLA-waydroid_arm64-system.zip + unzip lineage-18.1-20240210-VANILLA-waydroid_arm64-system.zip + sudo mount system.img /mnt + sudo cp -rf /mnt/system / + sudo umount /mnt + sudo rm -rf /system/vendor + sudo chmod 755 -R /system/* + sudo chown -R $(whoami):$(whoami) /system/* + sudo ln -sf /system/apex /apex else sudo apt-get -y install git gcc-aarch64-linux-gnu echo "BOX64_PLATFORM_MARCRO=-D${{ matrix.platform }}=1" >> $GITHUB_ENV echo "BOX64_COMPILER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV fi + if [[ ${{ matrix.platform }} == 'TERMUX' ]]; then + sudo apt-get -y install p7zip + wget https://mirrors.utermux.dev/termux/termux-main/pool/main/liba/libandroid-sysv-semaphore/libandroid-sysv-semaphore_0.1_aarch64.deb + 7z x libandroid-sysv-semaphore_0.1_aarch64.deb + tar -xf data.tar.xz + sudo cp -rf data / + sudo chmod 755 -R /data + sudo chown -R $(whoami):$(whoami) /data + echo "CFLAGS=-L/data/data/com.termux/files/usr/lib" >> $GITHUB_ENV + echo "IS_TERMUX=1" >> $GITHUB_ENV + echo "QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib" >> $GITHUB_ENV + else + echo "IS_TERMUX=0" >> $GITHUB_ENV + fi else if [[ ${{ matrix.platform }} == 'X64' ]]; then echo "BOX64_PLATFORM_MARCRO=-DLD80BITS=1 -DNOALIGN=1" >> $GITHUB_ENV @@ -93,6 +116,7 @@ jobs: mkdir build cd build cmake .. -DCMAKE_C_COMPILER=${{ env.BOX64_COMPILER }}\ + -DTERMUX=${{ env.IS_TERMUX }}\ ${{ env.BOX64_PLATFORM_MARCRO }}\ -DCMAKE_BUILD_TYPE=${{ env.BOX64_BUILD_TYPE }}\ -DHAVE_TRACE=${{ env.BOX64_HAVE_TRACE }}\ @@ -103,7 +127,7 @@ jobs: - name: "Test Box64" if: ${{ matrix.platform != 'TEGRAX1' }} run: | - if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'ANDROID' ]]; then + if [[ ${{ matrix.platform }} != 'X64' ]]; then mkdir qemu8.1.0 wget -O- -q https://archive.archlinux.org/packages/q/qemu-user-static/qemu-user-static-8.1.0-2-x86_64.pkg.tar.zst | tar -I zstd -C qemu8.1.0 -xf - sudo cp qemu8.1.0/usr/bin/* /usr/bin/ @@ -119,7 +143,12 @@ jobs: INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure elif [[ ${{ matrix.platform }} == 'ANDROID' ]]; then - true + INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure + INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 ctest -j$(nproc) --rerun-failed --output-on-failure + elif [[ ${{ matrix.platform }} == 'TERMUX' ]]; then + + INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure + INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib ctest -j$(nproc) --rerun-failed --output-on-failure else BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure ctest -j$(nproc) --rerun-failed --output-on-failure |