修改github eta 2.6.1 兼容android13 去掉超级小爱hook
Some checks failed
Eta Build / 构建 Debug 与 Release APK (push) Has been cancelled

This commit is contained in:
DelLevin-Home
2026-08-18 20:36:17 +08:00
commit 8a0e5e4bd3
429 changed files with 80043 additions and 0 deletions

52
.github/RELEASING.md vendored Normal file
View File

@@ -0,0 +1,52 @@
# Eta 发布流程
## 配置签名 Secrets
发布证书和密码不得提交到 Git。首次使用前在仓库的
`Settings > Secrets and variables > Actions` 中添加:
- `ETA_RELEASE_KEYSTORE_BASE64`:发布证书的 Base64 文本
- `ETA_RELEASE_STORE_PASSWORD`KeyStore 密码
- `ETA_RELEASE_KEY_ALIAS`Key alias
- `ETA_RELEASE_KEY_PASSWORD`Key 密码
macOS 可以用下面的命令复制证书的 Base64 文本:
```bash
base64 < /path/to/Eta-release.jks | tr -d '\n' | pbcopy
```
也可以使用 GitHub CLI。密码类 Secret 不要直接写在命令参数中,运行命令后按提示输入:
```bash
base64 < /path/to/Eta-release.jks | gh secret set ETA_RELEASE_KEYSTORE_BASE64
gh secret set ETA_RELEASE_STORE_PASSWORD
gh secret set ETA_RELEASE_KEY_ALIAS
gh secret set ETA_RELEASE_KEY_PASSWORD
```
## 构建与发布
以下情况会在同一次工作流中生成 Debug APK 和经过签名验证的 Release APK
并作为两个可直接下载的 Actions Artifact 保存 14 天:
-`main` 推送提交
- 推送 `v*` 标签
- 在 GitHub 的 `Actions > Eta Build` 中手动运行
工作流不会创建、修改或发布 GitHub Release。
正式发布前先更新 `versionCode``versionName`,然后创建与
`versionName` 对应的标签。例如发布 `2.2.2`
```bash
git tag v2.2.2
git push origin v2.2.2
```
标签推送后,等待 `Eta Build` 工作流完成,然后:
1. 从该次工作流的 `Artifacts` 下载 `app-release.apk`
2. 在仓库的 `Releases > Draft a new release` 中选择已有标签。
3. 填写 Release Notes 并上传 APK。
4. 检查版本、说明和附件后,由维护者手动发布。

117
.github/workflows/android-release.yml vendored Normal file
View File

@@ -0,0 +1,117 @@
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