feat: 服务端集成自动打包流程
This commit is contained in:
@@ -44,14 +44,17 @@ cp .env.example .env
|
||||
vim .env
|
||||
```
|
||||
|
||||
**必须修改的配置项:**
|
||||
**建议优先检查的配置项:**
|
||||
|
||||
```bash
|
||||
# iOS 源码项目路径(包含 readoor.xcworkspace 的目录)
|
||||
PROJECT_ROOT=/path/to/your/Readoor
|
||||
# 分支源码根目录,默认在当前项目下
|
||||
GIT_SOURCE_BASE=/path/to/iOSBuildServer/ReadoorBranches
|
||||
|
||||
# 打包输出目录
|
||||
BUILD_BASE_DIR=/path/to/build/output
|
||||
# 打包输出目录,默认在当前项目下
|
||||
BUILD_BASE_DIR=/path/to/iOSBuildServer/build
|
||||
|
||||
# Git 远程仓库地址(配置后可自动拉取分支)
|
||||
GIT_REMOTE_URL=git@github.com:org/repo.git
|
||||
|
||||
# 管理员密码(建议修改)
|
||||
ADMIN_PASSWORD=your_secure_password
|
||||
@@ -71,17 +74,19 @@ ADMIN_PASSWORD=your_secure_password
|
||||
|
||||
### 4.(可选)初始化分支源码目录
|
||||
|
||||
如果需要按分支打包,先准备分支源码目录:
|
||||
系统现在默认直接从分支源码目录打包,每个分支对应 `GIT_SOURCE_BASE` 下的一个子目录。
|
||||
|
||||
如果已配置 `GIT_REMOTE_URL`,首次打包某个分支时会自动 clone;如果未配置,则需要先手动准备分支目录:
|
||||
|
||||
```bash
|
||||
# 创建分支源码根目录
|
||||
mkdir -p /path/to/ReadoorBranches
|
||||
|
||||
# 手动 clone 主分支(后续自动 pull 更新)
|
||||
# 手动 clone 主分支(后续可继续手动维护)
|
||||
git clone -b main git@github.com:org/repo.git /path/to/ReadoorBranches/main
|
||||
```
|
||||
|
||||
其他分支无需手动 clone,首次打包时会自动从远程仓库 clone。
|
||||
如果已配置 `GIT_REMOTE_URL`,其他分支无需手动 clone,首次打包时会自动拉取。
|
||||
|
||||
### 5.(可选)启用健康监测
|
||||
|
||||
@@ -101,13 +106,12 @@ git clone -b main git@github.com:org/repo.git /path/to/ReadoorBranches/main
|
||||
|
||||
所有配置通过项目根目录的 `.env` 文件管理,修改后重启服务生效。
|
||||
|
||||
### 项目路径
|
||||
### 目录配置
|
||||
|
||||
| 变量 | 示例 | 说明 |
|
||||
|------|------|------|
|
||||
| `PROJECT_ROOT` | `/Users/shen/Work/Code/Readoor` | iOS 源码项目根目录(AutoPacking 脚本路径) |
|
||||
| `BUILD_BASE_DIR` | `/Users/shen/Documents` | 打包产物输出基础目录 |
|
||||
| `GIT_SOURCE_BASE` | `/path/to/ReadoorBranches` | 分支源码根目录,每个分支一个子目录 |
|
||||
| `GIT_SOURCE_BASE` | `/Users/shen/Work/Code/iOSBuildServer/ReadoorBranches` | 分支源码根目录,每个分支一个子目录,仅提供 iOS 工程源码 |
|
||||
| `BUILD_BASE_DIR` | `/Users/shen/Work/Code/iOSBuildServer/build` | 打包产物输出基础目录 |
|
||||
| `GIT_REMOTE_URL` | `git@github.com:org/repo.git` | 远程仓库地址,分支目录不存在时自动 clone |
|
||||
|
||||
### 服务配置
|
||||
@@ -131,14 +135,20 @@ git clone -b main git@github.com:org/repo.git /path/to/ReadoorBranches/main
|
||||
|
||||
以下配置通过管理后台 Web 界面管理(存储在 `config.json`):
|
||||
|
||||
首次部署时,如果项目根目录下存在 `config.json`,系统会自动导入其中的 `apps` 和 `schemes` 作为初始配置;导入后即可继续在后台增删改。
|
||||
|
||||
| 配置项 | 说明 |
|
||||
|--------|------|
|
||||
| App 管理 | 应用名称、Scheme、服务器环境、upload_key 等 |
|
||||
| Scheme 管理 | 打包 Scheme 配置 |
|
||||
| 服务器环境 | 测试/正式/自定义环境的 API 地址、Universal Link 等 |
|
||||
| 分支管理 | 可打包的代码分支列表 |
|
||||
| 版本号 | App_Ver 和 Build_Ver(写入 AutoPacking 脚本) |
|
||||
| 上传配置 | OSS / WebDAV 文件上传设置 |
|
||||
| 版本号 | 服务端统一管理 App_Ver 和 Build_Ver,不修改分支源码 |
|
||||
| 上传配置 | 服务端内置 OSS / WebDAV 分发,生成 IPA、manifest、下载页和二维码 |
|
||||
|
||||
### 服务端自动化资源
|
||||
|
||||
项目内的 `backend/automation/` 是 Web 打包服务唯一使用的自动化资源:默认皮肤和混淆工具都在此处维护。分支源码中的 `AutoPacking/` 不会被复制、执行或修改,仍可供开发者手动打包使用。
|
||||
|
||||
### Watchdog 配置
|
||||
|
||||
@@ -496,7 +506,7 @@ tail -50 logs/server.log
|
||||
```
|
||||
|
||||
常见原因:
|
||||
- `PROJECT_ROOT` 路径不存在
|
||||
- `GIT_SOURCE_BASE` 下对应分支目录不存在,且未配置 `GIT_REMOTE_URL`
|
||||
- 磁盘空间不足
|
||||
- Python 依赖缺失(重新执行 `./deploy.sh build`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user