diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb35256..ec73d53 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,61 @@ jobs: working-directory: ${{github.workspace}}/build run: ctest -C ${{env.BUILD_TYPE}} + android: + timeout-minutes: 30 + # contains sections copied from sdl repo + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - uses: nttld/setup-ndk@v1 + id: setup_ndk + with: + local-cache: false # https://github.com/nttld/setup-ndk/issues/518 + ndk-version: r26d + + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: update vcpkg + run: | + git clone https://github.com/microsoft/vcpkg.git + + - name: Install Dependencies (host) + run: sudo apt update && sudo apt -y install cmake pkg-config nasm + + - name: Install Dependencies (target) + env: + ANDROID_NDK_HOME: ${{steps.setup_ndk.outputs.ndk-path}} + run: vcpkg install --triplet arm64-android --overlay-ports=vcpkg/ports libsodium openssl + + # vcpkg scripts root /usr/local/share/vcpkg/scripts + - name: Configure CMake + env: + ANDROID_NDK_HOME: ${{steps.setup_ndk.outputs.ndk-path}} + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=arm64-android -DANDROID=1 -DANDROID_PLATFORM=23 -DANDROID_ABI=arm64-v8a -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${{steps.setup_ndk.outputs.ndk-path}}/build/cmake/android.toolchain.cmake + + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 + + - name: Compress artifacts + shell: bash + run: | + tar -czvf ${{ github.event.repository.name }}-android-arm64.tar.gz -C ${{github.workspace}}/build/bin/ . + + - uses: actions/upload-artifact@v4 + with: + name: ${{ github.event.repository.name }}-android-arm64 + # TODO: do propper packing + path: | + ${{github.workspace}}/${{github.event.repository.name}}-android-arm64.tar.gz + macos: timeout-minutes: 10