7.2 KiB
7.2 KiB
GitHub Actions CI/CD 快速入门指南
本指南帮助你快速配置和使用 UUVPN 的自动构建系统。
🚀 5 分钟快速开始
第一步: 准备工作
确保你已拥有:
- ✅ GitHub 账号
- ✅ UUVPN 代码仓库的写权限
- ✅ Apple Developer 账号 (iOS 构建必需)
- ✅ Android 签名密钥库 (Android Release 构建必需)
第二步: 安装 GitHub CLI
Windows:
winget install GitHub.cli
macOS:
brew install gh
Linux:
# Debian/Ubuntu
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
第三步: 登录 GitHub
gh auth login
按照提示选择:
- GitHub.com
- HTTPS
- 使用浏览器登录或粘贴 token
第四步: 配置 Secrets
方法一: 使用自动配置脚本 (推荐)
Windows:
cd D:\Code\UUVPN\.github\workflows
.\setup-secrets.ps1
macOS/Linux:
cd /path/to/UUVPN/.github/workflows
chmod +x setup-secrets.sh
./setup-secrets.sh
方法二: 手动配置
在 GitHub 仓库页面:
- 进入
Settings→Secrets and variables→Actions - 点击
New repository secret - 添加所需的 secrets (详见下方)
第五步: 触发构建
# 推送代码触发构建
git push origin main
# 或创建标签触发发布
git tag v1.0.0-alpha
git push origin v1.0.0-alpha
📋 必需的 Secrets 清单
Android 构建
| Secret | 必需 | 说明 |
|---|---|---|
ANDROID_KEYSTORE_BASE64 |
✅ | 签名密钥库的 Base64 编码 |
ANDROID_KEYSTORE_PASSWORD |
✅ | 密钥库密码 |
ANDROID_KEY_ALIAS |
✅ | 密钥别名 |
ANDROID_KEY_PASSWORD |
✅ | 密钥密码 |
iOS 构建
| Secret | 必需 | 说明 |
|---|---|---|
IOS_CERTIFICATES_P12 |
✅ | 开发者证书 Base64 编码 |
IOS_CERTIFICATES_PASSWORD |
✅ | 证书密码 |
IOS_TEAM_ID |
✅ | Apple Team ID |
IOS_SIGNING_IDENTITY |
✅ | 签名身份 |
IOS_PROVISIONING_PROFILE |
✅ | Provisioning Profile Base64 |
TestFlight 上传 (可选)
| Secret | 必需 | 说明 |
|---|---|---|
APP_STORE_CONNECT_ISSUER_ID |
⭐ | App Store Connect Issuer ID |
APP_STORE_CONNECT_API_KEY_ID |
⭐ | API Key ID |
APP_STORE_CONNECT_API_PRIVATE_KEY |
⭐ | API 私钥 |
通知 (可选)
| Secret | 必需 | 说明 |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Telegram Bot Token | |
TELEGRAM_CHAT_ID |
Telegram Chat ID |
🔧 详细配置步骤
Android 签名密钥库
1. 创建密钥库 (如果没有)
keytool -genkey -v \
-keystore release.keystore \
-alias uuvpn \
-keyalg RSA \
-keysize 2048 \
-validity 10000
按提示输入:
- 密钥库密码
- 个人信息
- 密钥密码
2. 转换为 Base64
macOS/Linux:
base64 -i release.keystore -o release.keystore.base64
Windows PowerShell:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("release.keystore")) | Out-File release.keystore.base64
3. 添加到 GitHub Secrets
复制 release.keystore.base64 文件内容,添加为 ANDROID_KEYSTORE_BASE64 secret。
iOS 开发者证书
1. 导出证书
- 打开 "钥匙串访问" (Keychain Access)
- 找到 "Apple Distribution" 证书
- 右键 → 导出
- 选择 .p12 格式
- 设置密码
2. 转换为 Base64
macOS:
base64 -i certificate.p12 -o certificate.p12.base64
3. 下载 Provisioning Profile
- 登录 Apple Developer
- 进入 Certificates, Identifiers & Profiles
- 下载对应的 Provisioning Profile
4. 转换为 Base64
base64 -i uuvpn.mobileprovision -o uuvpn.mobileprovision.base64
App Store Connect API Key
1. 创建 API Key
- 登录 App Store Connect
- 进入 Users and Access → Keys
- 点击 "Generate API Key"
- 选择 "App Manager" 权限
- 下载 .p8 文件
2. 记录信息
- Issuer ID: 在 Keys 页面顶部
- Key ID: 创建后显示
- Private Key: 下载的 .p8 文件内容
🎯 构建类型说明
Debug 构建
触发条件:
- Pull Request
- 推送到 develop 分支
特点:
- 无需签名配置
- 快速构建
- 不发布到 Release
Release 构建
触发条件:
- 推送到 main 分支
- 创建版本标签
特点:
- 需要签名配置
- 自动发布到 GitHub Releases
- 可选上传到 TestFlight
版本标签格式
# Alpha 版本 (预发布)
git tag v1.0.0-alpha
git push origin v1.0.0-alpha
# Beta 版本 (预发布,上传 TestFlight)
git tag v1.0.0-beta
git push origin v1.0.0-beta
# 正式版本 (发布,上传 TestFlight)
git tag v1.0.0
git push origin v1.0.0
📥 下载构建产物
方法一: Actions Artifacts
- 进入 GitHub 仓库
- 点击 "Actions" 标签
- 选择具体的 workflow 运行记录
- 在页面底部 "Artifacts" 区域下载
方法二: GitHub Releases
- 进入 GitHub 仓库
- 点击 "Releases" 标签
- 找到对应版本
- 下载 APK 或 IPA 文件
🛠️ 故障排查
构建失败
-
查看日志:
- 进入 Actions 页面
- 点击失败的步骤
- 查看详细错误信息
-
常见错误:
- ❌ 签名错误: 检查 Secrets 配置
- ❌ 证书过期: 更新证书和 Profile
- ❌ 构建超时: 优化构建配置
iOS 签名失败
检查清单:
- 证书未过期
- Provisioning Profile 包含正确 App ID
- Team ID 正确
- 证书和 Profile 匹配
TestFlight 上传失败
检查清单:
- API Key 有 App Manager 权限
- App ID 在 App Store Connect 已创建
- 版本号未重复
💡 最佳实践
1. 分支策略
main (稳定版本)
↑
develop (开发版本)
↑
feature/* (功能分支)
2. 版本号规范
使用语义化版本:
v1.0.0-alpha: 内部测试版本v1.0.0-beta: 公开测试版本v1.0.0: 正式发布版本
3. 节省构建时间
- 只在需要时构建 iOS (macOS runner 费用高)
- 使用缓存加速构建
- 手动触发选择性构建
4. 安全建议
- 定期更新签名密钥
- 使用最小权限原则
- 不要在代码中硬编码敏感信息
📞 获取帮助
文档
支持
- 查看仓库 Issues
- Telegram: @fastlink
✅ 配置验证清单
完成配置后,检查以下内容:
- 已安装 GitHub CLI
- 已登录 GitHub CLI
- 已配置 Android Secrets (如需 Android 构建)
- 已配置 iOS Secrets (如需 iOS 构建)
- 已配置 App Store Connect API (如需 TestFlight)
- 已推送代码触发构建
- 构建成功
- 可以下载构建产物
祝你构建顺利! 🎉