auto-sync: 2026-06-08 21:36:43
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions

This commit is contained in:
cfdaily
2026-06-08 21:36:43 +08:00
parent cd2523057d
commit 6b8f5ba6e3
3 changed files with 57 additions and 33 deletions
+3 -3
View File
@@ -23,7 +23,7 @@ on:
jobs:
# ── Job 1: Lint ──────────────────────────────────────
lint:
runs-on: ubuntu-latest
runs-on: macos-arm64
steps:
- uses: actions/checkout@v4
@@ -38,7 +38,7 @@ jobs:
# ── Job 2: Test ──────────────────────────────────────
test:
runs-on: ubuntu-latest
runs-on: macos-arm64
needs: lint
steps:
- uses: actions/checkout@v4
@@ -55,7 +55,7 @@ jobs:
# ── Job 3: CI 失败通知 ───────────────────────────────
# v1.23 不支持 failure(),用 always() + shell 检查 commit status 替代
notify-on-failure:
runs-on: ubuntu-latest
runs-on: macos-arm64
needs: [lint, test]
if: always()
steps:
+7 -25
View File
@@ -6,7 +6,7 @@
# Gitea v1.23.4 限制注意:
# - 不支持 failure() 表达式
# - 不支持 concurrency / permissions
# - 部署脚本占位,等姜维确认 act-runner 环境后再补具体命令
# - 部署脚本 scripts/deploy.sh,支持 --version/--rollback/--health-check
name: Deploy
@@ -17,7 +17,7 @@ on:
jobs:
# ── Job 1: CI(main 分支跑完整测试)─────────────────
ci:
runs-on: ubuntu-latest
runs-on: macos-arm64
steps:
- uses: actions/checkout@v4
@@ -36,42 +36,24 @@ jobs:
# ── Job 2: 部署 ─────────────────────────────────────
deploy:
runs-on: ubuntu-latest
runs-on: macos-arm64
needs: ci
steps:
- uses: actions/checkout@v4
- name: Record current version
run: |
echo "Deploying commit: ${{ gitea.sha }}"
echo "Branch: ${{ gitea.ref }}"
echo "Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
# TODO: bash scripts/deploy.sh --version
# 等姜维确认 act-runner 环境后再补
bash scripts/deploy.sh --version || echo "No deploy history yet"
- name: Deploy
run: |
echo "=== Deploy step (placeholder) ==="
echo "Source: ${{ gitea.workspace }}"
# TODO: 实际部署脚本
# bash scripts/deploy.sh --source="$GITHUB_WORKSPACE" --target="$HOME/.sanguo_projects/sanguo_moziplus_v2" --health-check
echo "Deploy placeholder completed."
bash scripts/deploy.sh --source="$GITHUB_WORKSPACE" --target="$HOME/.sanguo_projects/sanguo_moziplus_v2" --health-check
- name: Health check
run: |
echo "=== Health check ==="
# TODO: 等服务启动后做健康检查
# curl -sf http://localhost:8083/api/health || exit 1
echo "Health check placeholder passed."
# ── 失败时回滚 ────────────────────────────────
# v1.23 不支持 if: failure()
# 回滚逻辑改由 notify-on-failure job 检测 commit status 后通知人工介入
# 后续可升级到 v1.24+ 后改用 failure() 表达式
# 回滚由 notify-deploy-failure job 检测失败后通知人工介入
# ── Job 3: 部署失败通知 ──────────────────────────────
notify-deploy-failure:
runs-on: ubuntu-latest
runs-on: macos-arm64
needs: [ci, deploy]
if: always()
steps:
+47 -5
View File
@@ -1,6 +1,6 @@
# 三国团队工具链与开发流程设计
> **状态**: v3.0合并 §14 工具链 Skill 设计 + 自动部署(原 14-toolchain-skill-and-deploy.md v1.1
> **状态**: v3.1P3 端到端验证通过 + 调研结论写入 + Review API 枚举值修正
> **作者**: 庞统(副军师)🐦
> **评审**: 司马懿(仲达)🗡️
> **日期**: 2026-06-06
@@ -2205,9 +2205,10 @@ curl -X POST "http://192.168.2.154:3000/api/v1/repos/sanguo/{repo}/pulls/{pr_num
-H "Content-Type: application/json" \
-d '{
"body": "{审查意见}",
"event": "APPROVE"
"event": "APPROVED"
}'
# event 可选: APPROVE | REQUEST_CHANGES | COMMENT
# event 可选: APPROVED | REQUEST_CHANGES | COMMENT
# ⚠️ 注意:是 APPROVED(过去式),不是 APPROVE
```
### 风险级别判定(自动 + 确认)
@@ -2581,6 +2582,45 @@ esac
| **S5: Issue 指派** | 创建 Issue 并指派 | 中枢发 Mail 给被指派人 |
| **S6: 幂等验证** | 重复触发同一 delivery_id Webhook | 第二次返回 200 duplicate,不创建重复 Mail |
#### §17.6.4 P3 端到端验证结果(2026-06-08
| 场景 | 结果 | 说明 |
|------|------|------|
| **S1: CI 触发** | ✅ | push test/p3-e2e-s1 → ci.yml 触发。首次因 act-runner 离线未触发,姜维修复后积压任务自动执行 |
| **S2: PR Review 流程** | ✅ | PR opened → 中枢发 Review 请求 Mail 给 simayi-challenger ✅。Review APPROVED → 中枢发 Mail 给 PR 作者 ✅(Gitea 1.23.4 支持此 webhook |
| **S3: CI 失败通知** | ✅ | [CI] 评论 → 中枢发 Mail 给 PR作者 ✅ |
| **S4: 部署流程** | ⏭️ 跳过 | 依赖 CI 先跑通,未单独验证 |
| **S5: Issue 指派** | ✅ | Issue 指派 zhangfei-dev → 收到 Mail ✅ |
| **S6: 幂等验证** | ✅ | 同 delivery_id 第二次返回 `duplicate`,不创建重复 Mail ✅ |
##### 调研发现
**发现 1Gitea Review API event 枚举值**
Gitea ReviewStateType 枚举值应为 `APPROVED`(不是 `APPROVE`)。使用错误的枚举值会创建 PENDING review,且 PENDING 不触发 webhook 通知。
- 正确:`{"event": "APPROVED"}`
- 错误:`{"event": "APPROVE"}` → 创建 PENDING reviewwebhook 不触发
已修正:TOOLS.md 模板 + code-review Skill 中的 event 值。
**发现 2Gitea 1.23.4 支持 PullRequestReview webhook**
之前误判为"不支持",实际原因同发现 1——错误的枚举值创建了 PENDING reviewPENDING 不在 webhook switch 分支中导致报 "Unsupported review webhook type"。使用正确的 APPROVED event 后 webhook 正常触发。
daemon webhook handler 已正确覆盖:
- `pull_request_review` 事件 → `_handle_pull_request_review()`
- 只处理 APPROVED / REQUEST_CHANGES,跳过 COMMENTED 和 PENDING
- 通知对象:PR 作者
**发现 3act-runner 进程管理**
act-runner 未纳入进程管理,崩溃后不会自恢复。姜维已修复:
- 纳入 PM2 托管(进程名:sanguo-act-runnerid=44
- 启动命令:`pm2 start ~/bin/act_runner --name sanguo-act-runner --cwd ~/.config/act-runner/ -- daemon --config ~/.config/act-runner/config.yaml`
- 崩溃自动重启 ✅
- 开机自启:依赖 pm2 startup(需 sudo 配置 launchd
#### §17.6.3 实验项目 CI 配置
从 moziplus-v2 的 ci.yml 精简,实验项目只需要基本验证:
@@ -2608,7 +2648,7 @@ jobs:
- run: echo "test placeholder"
```
> **注意**:主项目 sanguo_moziplus_v2 的 ci.yml/deploy.yml 目前仍然是 `ubuntu-latest`(本地开发目录和安装目录都是)。如果 act-runner 只注册了 `macos-arm64`,主项目的 CI 跑不起来。后续主项目接入 CI 时需统一。P3,不阻断
> **注意**:主项目 ci.yml/deploy.yml 的 runs-on 已从 `ubuntu-latest` 改为 `macos-arm64`,对齐 act-runner 实际 label。deploy.yml 的 placeholder 也已替换为实际 deploy.sh 命令
---
@@ -2672,7 +2712,7 @@ Gitea v1.23.4 自带完整的 CI 管理界面:
| # | 条件 | 状态 | 谁确认 |
|---|------|------|--------|
| 1 | act-runner 已注册且 label = `macos-arm64` | ✅ CI 已跑过 24 次 | 确认 |
| 1 | act-runner 已注册且 label = `macos-arm64` | ✅ PM2 托管(sanguo-act-runner, id=44),崩溃自动重启 | 姜维确认 |
| 2 | Gitea repository secrets 已配置(CI_TOKEN | ⚠️ 需确认 | 姜维 |
| 3 | Gitea 组织级 Webhook 已启用(Hook ID=28 | ✅ 已确认 | 已确认 |
| 4 | 各 Agent 的 GITEA_TOKEN 环境变量 | ⚠️ 待分配 | 庞统协调 |
@@ -2681,6 +2721,8 @@ Gitea v1.23.4 自带完整的 CI 管理界面:
> 第 5 点很关键——如果 main 分支没有保护规则,开发者可以直接 push main 跳过 Review。
> act-runner 已于 2026-06-08 纳入 PM2 托管(姜维),崩溃自动重启 + pm2 save 已保存。开机自启依赖 pm2 startup(需 sudo 配置 launchd),P4 完成。
---
### §17.11. 评审记录(原 §14 评审)