Files
android-ci-demo/.gitea/workflows/android-release.yml
T
amos 5a5d685229
Android Build / build (push) Waiting to run
Android Release / release (push) Failing after 35s
fix: 使用未签名的 APK(app-release-unsigned.apk)
2026-06-02 12:52:37 +08:00

90 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Android Release
on:
push:
tags:
- 'v*' # 监听所有 v 开头的标签(如 v1.0.0, v2.1.3
jobs:
release:
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 Release APK
run: |
# 设置 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
# 使用 ARM64 版本的 aapt2(来自 lzhiyong/android-sdk-tools
export CUSTOM_AAPT2_PATH=/usr/bin/aapt2
echo "=== 使用 ARM64 aapt2 (35.0.2) ==="
# 创建 gradle.properties 配置
echo "org.gradle.jvmargs=-Xmx2g -XX:+UseG1GC -XX:MaxMetaspaceSize=512m" >> gradle.properties
echo "org.gradle.daemon=false" >> gradle.properties
# 使用自定义 aapt2 路径
echo "android.aapt2FromMavenOverride=$CUSTOM_AAPT2_PATH" >> gradle.properties
# 编译 Release APK(带签名配置)
echo "=== 开始编译 Release APK ==="
gradle assembleRelease \
--no-daemon \
--stacktrace \
--no-watch-fs \
--no-configuration-cache \
--no-build-cache \
-Dfile.encoding=UTF-8
# 验证输出(未签名的 APK)
echo "=== 编译完成 ==="
ls -lh app/build/outputs/apk/release/
# 重命名 APK 包含版本号(使用未签名的 APK)
VERSION=${GITHUB_REF#refs/tags/}
cp app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/app-${VERSION}-unsigned.apk
echo "APK_NAME=app-${VERSION}-unsigned.apk" >> $GITHUB_ENV
echo "⚠️ 注意:生成的是未签名 APK,仅用于测试。生产环境请配置签名。"
- name: Create Gitea Release
id: create_release
uses: actions/create-release@v1
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
body: |
## 自动发布的 Release
- 版本:${{ github.ref }}
- 提交:${{ github.sha }}
- 编译时间:${{ github.event.head_commit.timestamp }}
### 变更日志
${{ github.event.head_commit.message }}
- name: Upload Release APK
uses: actions/upload-release-asset@v1
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: app/build/outputs/apk/release/${{ env.APK_NAME }}
asset_name: ${{ env.APK_NAME }}
asset_content_type: application/vnd.android.package-archive