Skip to content

Commit 37301ab

Browse files
authored
Update android.yml
1 parent c4b7f37 commit 37301ab

1 file changed

Lines changed: 24 additions & 101 deletions

File tree

.github/workflows/android.yml

Lines changed: 24 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,46 @@
11
name: Build KingWatch APK
2-
32
on:
43
push:
54
branches: [ main ]
6-
pull_request:
7-
branches: [ main ]
85
workflow_dispatch:
9-
106
jobs:
117
build:
128
runs-on: ubuntu-22.04
13-
timeout-minutes: 60
14-
9+
env:
10+
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
1511
steps:
16-
# ── 1. Checkout ──────────────────────────────────────────────────────────
17-
- name: Checkout repository
18-
uses: actions/checkout@v4
19-
20-
# ── 2. Python ────────────────────────────────────────────────────────────
21-
- name: Set up Python 3.10
22-
uses: actions/setup-python@v5
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-python@v5
2314
with:
24-
python-version: "3.10"
25-
26-
# ── 3. System dependencies ───────────────────────────────────────────────
27-
- name: Install system dependencies
15+
python-version: '3.10'
16+
- name: Install dependencies
2817
run: |
2918
sudo apt-get update -qq
30-
sudo apt-get install -y --no-install-recommends \
31-
git zip unzip curl wget \
32-
build-essential ccache \
33-
libffi-dev libssl-dev \
34-
libsqlite3-dev \
35-
autoconf libtool \
36-
pkg-config \
37-
cmake \
38-
libltdl-dev \
39-
python3-dev \
40-
openjdk-17-jdk-headless
41-
42-
# ── 4. Java ──────────────────────────────────────────────────────────────
43-
- name: Set JAVA_HOME
44-
run: |
45-
echo "JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> $GITHUB_ENV
46-
47-
# ── 5. pip packages ──────────────────────────────────────────────────────
48-
- name: Install Python build tools
49-
run: |
50-
pip install --upgrade pip setuptools wheel
51-
pip install buildozer==1.5.0
52-
pip install cython==0.29.33
53-
54-
# ── 6. Android SDK / NDK cache ───────────────────────────────────────────
55-
- name: Cache Android SDK, NDK and buildozer global
56-
uses: actions/cache@v4
57-
with:
58-
path: |
59-
~/.buildozer/android/platform/android-sdk
60-
~/.buildozer/android/platform/android-ndk-r25b
61-
key: android-sdk-ndk-${{ runner.os }}-r25b-sdk33
62-
restore-keys: |
63-
android-sdk-ndk-${{ runner.os }}-
64-
65-
# ── 7. Buildozer local cache ─────────────────────────────────────────────
66-
- name: Cache buildozer local build
67-
uses: actions/cache@v4
68-
with:
69-
path: .buildozer
70-
key: buildozer-${{ runner.os }}-${{ hashFiles('buildozer.spec') }}-${{ hashFiles('main.py') }}
71-
restore-keys: |
72-
buildozer-${{ runner.os }}-${{ hashFiles('buildozer.spec') }}-
73-
buildozer-${{ runner.os }}-
74-
75-
# ── 8. Accept Android licenses ───────────────────────────────────────────
76-
- name: Pre-accept Android SDK licenses
77-
run: |
78-
mkdir -p ~/.buildozer/android/platform/android-sdk/licenses
79-
echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > ~/.buildozer/android/platform/android-sdk/licenses/android-sdk-license
80-
echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> ~/.buildozer/android/platform/android-sdk/licenses/android-sdk-license
81-
echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" >> ~/.buildozer/android/platform/android-sdk/licenses/android-sdk-license
82-
echo "84831b9409646a918e30573bab4c9c91346d8abd" > ~/.buildozer/android/platform/android-sdk/licenses/android-sdk-preview-license
83-
84-
# ── 9. Build APK ─────────────────────────────────────────────────────────
85-
- name: Build debug APK with buildozer
86-
env:
87-
JAVA_HOME: ${{ env.JAVA_HOME }}
19+
sudo apt-get install -y git zip unzip openjdk-17-jdk build-essential libssl-dev libffi-dev python3-dev autoconf libtool pkg-config cmake
20+
pip install --upgrade pip
21+
pip install buildozer==1.5.0 cython==0.29.33
22+
- name: Install Android SDK
8823
run: |
89-
# Show spec for debug
90-
echo "=== buildozer.spec ==="
91-
cat buildozer.spec
92-
echo "=== main.py head ==="
93-
head -50 main.py || echo "main.py not found!"
94-
echo "====================="
95-
# Run buildozer
96-
buildozer -v android debug 2>&1 | tee build_output.log
97-
echo "Exit code: $?"
98-
99-
# ── 10. Show build result ────────────────────────────────────────────────
100-
- name: Check APK produced
24+
mkdir -p $HOME/.buildozer/android/platform/android-sdk/cmdline-tools
25+
cd $HOME/.buildozer/android/platform/android-sdk/cmdline-tools
26+
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
27+
unzip -q commandlinetools-linux-11076708_latest.zip
28+
mv cmdline-tools latest
29+
yes | $HOME/.buildozer/android/platform/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses || true
30+
$HOME/.buildozer/android/platform/android-sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-33" "build-tools;33.0.2" "platform-tools"
31+
- name: Build APK
10132
run: |
102-
echo "Contents of bin/:"
103-
ls -lh bin/ 2>/dev/null || echo "bin/ directory does not exist"
104-
echo "APK files:"
105-
find . -name "*.apk" 2>/dev/null || echo "No APK found"
106-
107-
# ── 11. Upload APK ───────────────────────────────────────────────────────
108-
- name: Upload APK artifact
109-
if: success()
33+
export ANDROID_SDK_ROOT=$HOME/.buildozer/android/platform/android-sdk
34+
buildozer android debug 2>&1 | tee build.log
35+
- name: Upload APK
11036
uses: actions/upload-artifact@v4
11137
with:
112-
name: KingWatch-Pro-debug
38+
name: KingWatch-APK
11339
path: bin/*.apk
11440
if-no-files-found: error
115-
116-
# ── 12. Upload full log (always) ─────────────────────────────────────────
117-
- name: Upload build log
41+
- name: Upload log
11842
if: always()
11943
uses: actions/upload-artifact@v4
12044
with:
12145
name: build-log
122-
path: build_output.log
123-
if-no-files-found: warn
46+
path: build.log

0 commit comments

Comments
 (0)