diff --git a/RELEASE_SETUP.md b/RELEASE_SETUP.md new file mode 100644 index 0000000..7c845b0 --- /dev/null +++ b/RELEASE_SETUP.md @@ -0,0 +1,109 @@ +# Gitea Actions 自动发布配置指南 + +## ✅ 已完成 +1. 创建了 Release workflow: `.gitea/workflows/android-release.yml` +2. 创建了 Gitea Token: `gitea-actions-release` + +## 🔧 需要手动配置的步骤 + +### 步骤 1: 添加 GITEA_TOKEN Secret + +1. 访问你的仓库:https://gitea.kg8.net/amos/android-ci-demo +2. 点击 **Settings** (设置) +3. 在左侧菜单选择 **Secrets** (密钥) +4. 点击 **Add secret** (添加密钥) +5. 填写: + - **Name**: `GITEA_TOKEN` + - **Value**: `b4d3c4c6cd1b37b6a378970443781ee9eaeff8f5` +6. 点击 **Add secret** 保存 + +### 步骤 2: (可选)配置 APK 签名 + +如果要签名 Release 版本: + +1. **生成签名密钥**(如果还没有): + ```bash + keytool -genkey -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mykey + ``` + +2. **在 Gitea Secrets 中添加签名信息**: + - `KEYSTORE_PATH`: `/path/to/keystore/release.jks`(在 Runner 上的路径) + - `KEYSTORE_PASSWORD`: 你的密钥库密码 + - `KEY_ALIAS`: 你的密钥别名 + - `KEY_PASSWORD`: 你的密钥密码 + +3. **修改 `app/build.gradle`** 添加签名配置: + ```gradle + android { + ... + signingConfigs { + release { + storeFile file(System.getenv("KEYSTORE_PATH") ?: "keystore/release.jks") + storePassword System.getenv("KEYSTORE_PASSWORD") + keyAlias System.getenv("KEY_ALIAS") + keyPassword System.getenv("KEY_PASSWORD") + } + } + buildTypes { + release { + signingConfig signingConfigs.release + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + } + ``` + +### 步骤 3: 测试自动发布 + +推送一个测试标签来触发自动发布: + +```bash +cd /tmp/android-ci-demo-fixed +git tag v1.0.0-test +git push origin v1.0.0-test +``` + +然后访问:https://gitea.kg8.net/amos/android-ci-demo/actions + +查看 **Android Release** workflow 的运行状态。 + +### 步骤 4: 正式发布 + +当准备发布正式版本时: + +```bash +# 更新版本号(在 build.gradle 中) +# versionName "1.0.0" +# versionCode 1 + +git tag v1.0.0 +git push origin v1.0.0 +``` + +自动发布 workflow 会: +1. ✅ 编译 Release 版本的 APK +2. ✅ 创建 Gitea Release +3. ✅ 上传 APK 到 Release + +## 📝 注意事项 + +1. **Token 权限**: 创建的 token 有 `write:repository` 权限,可以创建 Release +2. **Token 安全**: 不要将 token 提交到 Git,只通过 Gitea Secrets 使用 +3. **APK 大小**: Release 版本经过混淆和压缩,通常比 Debug 版本小 30-50% +4. **签名**: 未签名的 Release APK 无法安装到真机,仅用于测试 + +## 🎯 后续优化建议 + +1. **添加变更日志**: 自动从 commit message 生成 CHANGELOG +2. **多版本支持**: 同时生成 universal APK 和分架构 APK +3. **自动测试**: 在发布前运行单元测试 +4. **通知**: 发布成功后通过飞书/邮件通知团队 + +--- + +**Token 信息**(仅首次配置需要): +- Name: `gitea-actions-release` +- Token: `b4d3c4c6cd1b37b6a378970443781ee9eaeff8f5` +- 最后 8 位:`eaeff8f5`