feat: 添加自动发布 workflow(tag push 时创建 Release 并上传 APK)
Android Build / build (push) Successful in 40s

This commit is contained in:
amos
2026-06-02 12:47:01 +08:00
parent cda20467b5
commit ef3a9ce9e1
2 changed files with 117 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
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
# 验证输出
echo "=== 编译完成 ==="
ls -lh app/build/outputs/apk/release/
# 重命名 APK 包含版本号
VERSION=${GITHUB_REF#refs/tags/}
cp app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/app-${VERSION}.apk
echo "APK_NAME=app-${VERSION}.apk" >> $GITHUB_ENV
- 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