|
6 | 6 |
|
7 | 7 | ## 需要配置的环境变量 |
8 | 8 |
|
| 9 | +### GitHub Secrets(必需) |
| 10 | + |
9 | 11 | 在 GitHub 仓库的 Settings > Secrets and variables > Actions 中配置以下密钥: |
10 | 12 |
|
11 | | -### 必需的 Secrets |
| 13 | +| 变量名 | 说明 | 示例 | 必需 | |
| 14 | +| -------------------- | ---------------------------- | --------------------------- | ---- | |
| 15 | +| `TENCENT_SECRET_ID` | 腾讯云 API 密钥 ID | `AKIDxxxxxxxxxxxxxxxxxxxxx` | ✅ | |
| 16 | +| `TENCENT_SECRET_KEY` | 腾讯云 API 密钥 Key | `xxxxxxxxxxxxxxxxxxxxxxxx` | ✅ | |
| 17 | +| `TENCENT_COS_BUCKET` | COS 存储桶名称 | `my-website-1234567890` | ✅ | |
| 18 | +| `TENCENT_COS_REGION` | COS 存储桶区域 | `ap-shanghai` | ✅ | |
| 19 | +| `TENCENT_CDN_PREFIX` | CDN 域名前缀(可选) | `https://cdn.example.com/` | ❌ | |
| 20 | +| `GH_PAT` | GitHub Personal Access Token | `ghp_xxxxxxxxxxxxxxxxxxxx` | ❌ | |
| 21 | + |
| 22 | +### GitHub Variables(可选功能控制) |
| 23 | + |
| 24 | +在 GitHub 仓库的 Settings > Secrets and variables > Actions > Variables 中配置: |
12 | 25 |
|
13 | | -| 变量名 | 说明 | 示例 | |
14 | | -| -------------------- | ---------------------------- | --------------------------- | |
15 | | -| `TENCENT_SECRET_ID` | 腾讯云 API 密钥 ID | `AKIDxxxxxxxxxxxxxxxxxxxxx` | |
16 | | -| `TENCENT_SECRET_KEY` | 腾讯云 API 密钥 Key | `xxxxxxxxxxxxxxxxxxxxxxxx` | |
17 | | -| `TENCENT_COS_BUCKET` | COS 存储桶名称 | `my-website-1234567890` | |
18 | | -| `TENCENT_COS_REGION` | COS 存储桶区域 | `ap-shanghai` | |
19 | | -| `TENCENT_CDN_PREFIX` | CDN 域名前缀(可选) | `https://cdn.example.com/` | |
20 | | -| `GH_PAT` | GitHub Personal Access Token | `ghp_xxxxxxxxxxxxxxxxxxxx` | |
| 26 | +| 变量名 | 说明 | 默认值 | 可选值 | |
| 27 | +| ------------------------- | ----------------------- | ------- | --------------- | |
| 28 | +| `ENABLE_SUBMODULE_UPDATE` | 是否启用子模块自动更新 | `false` | `true`, `false` | |
| 29 | +| `ENABLE_TYPE_CHECK` | 是否启用类型检查和 lint | `true` | `true`, `false` | |
| 30 | + |
| 31 | +## 腾讯云配置 |
21 | 32 |
|
22 | 33 | ### 腾讯云密钥获取方法 |
23 | 34 |
|
|
66 | 77 | - **CDN 刷新**:自动刷新 CDN 缓存,确保用户看到最新内容 |
67 | 78 | - **原子性部署**:构建成功后才进行部署 |
68 | 79 |
|
| 80 | +### 可选功能控制 |
| 81 | + |
| 82 | +- **子模块更新**:通过 `ENABLE_SUBMODULE_UPDATE` 控制是否自动更新子模块 |
| 83 | +- **类型检查**:通过 `ENABLE_TYPE_CHECK` 控制是否进行类型检查和 lint |
| 84 | + |
69 | 85 | ### 触发条件 |
70 | 86 |
|
71 | | -- 推送到 `main` 分支时自动触发 |
| 87 | +- 推送到 `main` 或 `deploy` 分支时自动触发 |
72 | 88 | - 支持手动触发(workflow_dispatch) |
73 | 89 | - 支持通过 repository_dispatch 触发(用于子模块更新) |
74 | 90 |
|
75 | 91 | ## 监控和通知 |
76 | 92 |
|
77 | | -部署完成后,可以在 GitHub Actions 页面查看详细的构建和部署日志。每个步骤都有清晰的名称和状态指示。 |
| 93 | +部署完成后,可以在 GitHub Actions 页面查看详细的构建和部署日志。每个步骤都有清晰的名称和状态指示。健康检查失败时会正确设置失败状态。 |
78 | 94 |
|
79 | 95 | ## 故障排除 |
80 | 96 |
|
|
84 | 100 | 2. **存储桶不存在**:确认存储桶名称和区域是否正确 |
85 | 101 | 3. **CDN 刷新失败**:检查 CDN 域名配置是否正确 |
86 | 102 | 4. **构建失败**:检查代码是否有语法错误,依赖是否正确 |
| 103 | +5. **健康检查失败**:健康检查失败会导致工作流失败状态 |
87 | 104 |
|
88 | 105 | ### 调试方法 |
89 | 106 |
|
|
0 commit comments