61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
name: Android Build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main ]
|
|
pull_request:
|
|
branches: [ master, main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: android
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Java 17
|
|
run: |
|
|
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
|
|
echo "=== 使用 Java 17 ==="
|
|
java -version
|
|
|
|
- name: Build Debug APK
|
|
run: |
|
|
# 验证环境
|
|
echo "=== 环境检查 ==="
|
|
java -version
|
|
gradle --version
|
|
|
|
# 设置 Android SDK 环境变量
|
|
export ANDROID_HOME=/opt/android-sdk
|
|
export ANDROID_SDK_ROOT=$ANDROID_HOME
|
|
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$PATH
|
|
|
|
# 直接使用系统 Gradle 8.14.4 编译(避免 Gradle 8.2 wrapper 在 Alpine 上的 JVM 崩溃问题)
|
|
echo "=== 开始编译 ==="
|
|
gradle assembleDebug \
|
|
--no-daemon \
|
|
--stacktrace \
|
|
--no-watch-fs \
|
|
--no-configuration-cache \
|
|
--no-build-cache \
|
|
-Dorg.gradle.daemon=false \
|
|
-Dorg.gradle.jvmargs="-Xmx2g -XX:+UseG1GC -XX:MaxMetaspaceSize=512m" \
|
|
-Dorg.gradle.internal.native.headers.unresolved.dependencies.ignore=true \
|
|
-Dfile.encoding=UTF-8
|
|
|
|
# 验证输出
|
|
echo "=== 编译完成 ==="
|
|
ls -lh app/build/outputs/apk/debug/
|
|
|
|
- name: Upload APK
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: app-debug
|
|
path: app/build/outputs/apk/debug/app-debug.apk
|
|
retention-days: 7
|