Files
Eta_change/.github/workflows/android-release.yml
DelLevin-Home 8a0e5e4bd3
Some checks failed
Eta Build / 构建 Debug 与 Release APK (push) Has been cancelled
修改github eta 2.6.1 兼容android13 去掉超级小爱hook
2026-08-18 20:36:17 +08:00

118 lines
3.9 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: Eta Build
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
concurrency:
group: android-build-${{ github.ref }}
cancel-in-progress: true
jobs:
build-apks:
name: 构建 Debug 与 Release APK
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
- name: 检出代码
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- name: 配置 JDK 25
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "25"
- name: 配置 Gradle
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6
with:
cache-provider: basic
- name: 配置 Android SDK 工具
uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4
with:
packages: ""
log-accepted-android-sdk-licenses: false
- name: 安装 Android SDK 37
run: sdkmanager --channel=3 "platforms;android-37.0"
- name: 还原发布证书
env:
ETA_RELEASE_KEYSTORE_BASE64: ${{ secrets.ETA_RELEASE_KEYSTORE_BASE64 }}
ETA_RELEASE_STORE_PASSWORD: ${{ secrets.ETA_RELEASE_STORE_PASSWORD }}
ETA_RELEASE_KEY_ALIAS: ${{ secrets.ETA_RELEASE_KEY_ALIAS }}
ETA_RELEASE_KEY_PASSWORD: ${{ secrets.ETA_RELEASE_KEY_PASSWORD }}
run: |
if [[ -z "$ETA_RELEASE_KEYSTORE_BASE64" ||
-z "$ETA_RELEASE_STORE_PASSWORD" ||
-z "$ETA_RELEASE_KEY_ALIAS" ||
-z "$ETA_RELEASE_KEY_PASSWORD" ]]; then
echo "::error::缺少 Release 签名 Secrets请检查仓库的 Actions Secrets。"
exit 1
fi
printf '%s' "$ETA_RELEASE_KEYSTORE_BASE64" \
| base64 --decode \
> "$RUNNER_TEMP/eta-release.jks"
- name: 构建 Debug 与 Release APK
env:
ETA_RELEASE_STORE_FILE: ${{ runner.temp }}/eta-release.jks
ETA_RELEASE_STORE_PASSWORD: ${{ secrets.ETA_RELEASE_STORE_PASSWORD }}
ETA_RELEASE_KEY_ALIAS: ${{ secrets.ETA_RELEASE_KEY_ALIAS }}
ETA_RELEASE_KEY_PASSWORD: ${{ secrets.ETA_RELEASE_KEY_PASSWORD }}
run: >-
./gradlew --no-daemon --no-configuration-cache
:app:assembleDebug :app:assembleRelease
- name: 验证并整理 APK
id: apk
run: |
debug_apk="app/build/outputs/apk/debug/app-debug.apk"
release_apk="app/build/outputs/apk/release/app-release.apk"
output_dir="$RUNNER_TEMP/apks"
apksigner_path="$(find "$ANDROID_HOME/build-tools" \
-type f -name apksigner | sort -V | tail -n 1)"
if [[ ! -f "$debug_apk" ]]; then
echo "::error::未找到 Debug APK。"
exit 1
fi
if [[ ! -f "$release_apk" ]]; then
echo "::error::未找到 Release APK。"
exit 1
fi
if [[ -z "$apksigner_path" ]]; then
echo "::error::未找到 apksigner。"
exit 1
fi
"$apksigner_path" verify "$release_apk"
mkdir -p "$output_dir"
cp "$debug_apk" "$output_dir/app-debug.apk"
cp "$release_apk" "$output_dir/app-release.apk"
echo "debug_path=$output_dir/app-debug.apk" >> "$GITHUB_OUTPUT"
echo "release_path=$output_dir/app-release.apk" >> "$GITHUB_OUTPUT"
- name: 上传 Debug APK
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
path: ${{ steps.apk.outputs.debug_path }}
archive: false
if-no-files-found: error
retention-days: 14
- name: 上传 Release APK
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
path: ${{ steps.apk.outputs.release_path }}
archive: false
if-no-files-found: error
retention-days: 14