Update buildozer.spec #432
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: Build KingWatch Pro APK | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| pull_request: | |
| branches: [ main, master ] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y \ | |
| git zip unzip openjdk-17-jdk \ | |
| autoconf automake libtool pkg-config \ | |
| zlib1g-dev libncurses5-dev libncursesw5-dev \ | |
| libtinfo5 cmake libffi-dev libssl-dev \ | |
| build-essential ccache | |
| - name: Force Java 17 | |
| run: | | |
| echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV | |
| echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> $GITHUB_PATH | |
| - name: Install Buildozer and Cython | |
| run: | | |
| pip install --upgrade pip | |
| pip install buildozer==1.5.0 cython==3.0.11 | |
| - name: Cache Buildozer global directory | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.buildozer | |
| key: buildozer-${{ runner.os }}-${{ hashFiles('buildozer.spec') }} | |
| restore-keys: | | |
| buildozer-${{ runner.os }}- | |
| - name: Install Android SDK at Buildozer hardcoded path | |
| run: | | |
| SDK=$HOME/.buildozer/android/platform/android-sdk | |
| mkdir -p $SDK/cmdline-tools | |
| wget -q \ | |
| https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \ | |
| -O /tmp/cmdline-tools.zip | |
| unzip -q /tmp/cmdline-tools.zip -d /tmp/ct-raw | |
| # Remove existing dir first (fixes cache-restore conflict) | |
| rm -rf $SDK/cmdline-tools/latest | |
| mv /tmp/ct-raw/cmdline-tools $SDK/cmdline-tools/latest | |
| SDKMGR=$SDK/cmdline-tools/latest/bin/sdkmanager | |
| yes | $SDKMGR --licenses > /dev/null 2>&1 || true | |
| $SDKMGR \ | |
| "platform-tools" \ | |
| "platforms;android-35" \ | |
| "build-tools;34.0.0" \ | |
| "ndk;25.1.8937393" | |
| # Legacy shim Buildozer hardcodes a check for | |
| mkdir -p $SDK/tools/bin | |
| printf '#!/usr/bin/env bash\nexec "%s" "$@"\n' "$SDKMGR" \ | |
| > $SDK/tools/bin/sdkmanager | |
| chmod +x $SDK/tools/bin/sdkmanager | |
| # Symlink NDK name to match buildozer.spec | |
| rm -f $SDK/ndk/25b | |
| ln -sfn $SDK/ndk/25.1.8937393 $SDK/ndk/25b | |
| echo "ANDROID_SDK_ROOT=$SDK" >> $GITHUB_ENV | |
| echo "ANDROID_HOME=$SDK" >> $GITHUB_ENV | |
| echo "$SDK/cmdline-tools/latest/bin" >> $GITHUB_PATH | |
| echo "$SDK/platform-tools" >> $GITHUB_PATH | |
| echo "$SDK/tools/bin" >> $GITHUB_PATH | |
| - name: Verify SDK setup | |
| run: | | |
| echo "=== shim ===" && cat $ANDROID_SDK_ROOT/tools/bin/sdkmanager | |
| echo "=== NDK ===" && ls -la $ANDROID_SDK_ROOT/ndk/ | |
| echo "=== build-tools ===" && ls $ANDROID_SDK_ROOT/build-tools/ | |
| - name: Build debug APK | |
| run: buildozer android debug | |
| env: | |
| ANDROID_SDK_ROOT: ${{ env.ANDROID_SDK_ROOT }} | |
| ANDROID_HOME: ${{ env.ANDROID_HOME }} | |
| - name: Upload APK artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: KingWatch-Pro-debug | |
| path: bin/*.apk | |
| retention-days: 30 |