Skip to content

Update buildozer.spec #432

Update buildozer.spec

Update buildozer.spec #432

Workflow file for this run

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