🐛 fix(gitea-fix-ci): distinguish symptoms from root causes

This commit is contained in:
csh
2026-08-13 12:05:03 +08:00
parent 61ea467a37
commit ede9287d5f
+11 -4
View File
@@ -151,12 +151,17 @@ python <skill-dir>/scripts/fetch_ci_logs.py --use-git-credential runs --status f
- 环境失败:缺失 secret、runner 镜像、依赖安装、网络、缓存、权限或服务启动
- 工作流失败:YAML 非法、语法不支持、触发条件错误、路径错误、分支/ref 假设错误
- 基础设施失败:runner 离线、队列卡住、run 被取消、超时
- 把日志直接显示的事实与根因假设分开。一个断言、编译错误或心跳中断只能证明其
直接症状;在读取相关源码、配置或运行环境前,不把默认值、依赖版本、runner
资源等假设写成已确认根因。
6. **制定修复计划**
- 用确切的 job/run 标识总结失败证据。
- 提出与证据匹配的最小代码或工作流改动
- 包含本地验证命令和远端复检路径
- 提出与证据匹配的最小代码或工作流改动;证据尚未区分多个可能根因时,先计划
检查对应源码、配置或环境,不预选修复
- 本地验证优先复用失败 workflow/job 的原命令。若只能运行不同命令,明确标为
“近似验证”,说明与 CI 命令、环境或依赖的差异,并保留远端复检路径。
7. **🔴 CHECKPOINT · 🛑 STOP:等待修复授权**
@@ -181,8 +186,8 @@ python <skill-dir>/scripts/fetch_ci_logs.py --use-git-credential runs --status f
- `Target:` 仓库、分支/SHA、PR 或 run ID
- `Failed CI:` workflow、job、状态、run URL 或 API 路径
- `Evidence:` 精简的日志片段分类
- `Plan:` 提出的修复、本地验证、远端复检
- `Evidence:` 精简的日志片段分类、已确认事实与尚待验证的根因假设
- `Plan:` 提出的检查或修复、本地验证(原命令或标注近似)、远端复检
- `Changes:` 批准后改动的文件
- `Result:` 已运行的本地检查与剩余的远端状态
@@ -199,6 +204,8 @@ python <skill-dir>/scripts/fetch_ci_logs.py --use-git-credential runs --status f
出现以下情况说明流程走偏,停下纠正而非继续:
- **凭红色状态臆测原因**:还没下载 job 日志就断言失败原因或动手改代码。
- **把症状写成根因**:仅凭单个断言、编译错误或最后一行日志,就断言具体默认值、
依赖版本、配置路径或 runner 资源是根因。
- **误读双字段结果**:把 `status`(生命周期)当成结果判定。Gitea Actions 沿用
GitHub 兼容的双字段模型——`status=completed` 只表示跑完了,真正的成败在
`conclusion``failure`/`success`/`cancelled`)。判定失败必须看有效结果,