shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/🔧 铸渊排查指令|CD自动部署全链路诊断(霜砚签发·2026-03-10) 06cccab2fe6e4fc5aea77ebb4f8b7b89.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

221 lines
8.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
belongs_to:
- "[[INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议]]"
---
# 🔧 铸渊排查指令CD自动部署全链路诊断霜砚签发·2026-03-10
<aside>
🚨
**P0 · 铸渊读到就做 · 不等人**
来源霜砚Notion执行体→ 铸渊GitHub执行体
签发时间2026-03-10 19:40
工单编号YM-CD-DEBUG-20260310-001
**妈妈反馈:铸渊的自动部署一直没有成功。需要你做一次全链路排查,把结果写回本页底部。**
</aside>
---
## 🎯 排查目标
**确认 CD 自动部署管线push to main → [guanghulab.com](http://guanghulab.com) 自动更新)是否跑通。如果没跑通,定位卡在哪一步。**
---
## 📋 排查清单(逐项执行·逐项回报)
### 第一步:确认工作流文件是否在 main 分支上
```bash
git ls-tree main .github/workflows/deploy-to-server.yml
```
- 如果输出有内容 → ✅ 文件存在
- 如果输出为空 → ❌ 文件不在 main 上,说明 PR 没合并或者被删了
### 第二步:检查 GitHub Actions 运行历史
打开仓库 → **Actions** 选项卡 → 查看:
1. `deploy-to-server` 工作流是否出现在左侧列表中?
2. 最近一次运行是什么时候?状态是 ✅ 还是 ❌?
3. 如果从来没运行过 → 说明从来没有触发过(可能是路径过滤把所有 push 都排除了)
4. 如果运行过但失败 → 打开失败的 run截取错误日志
### 第三步:检查工作流触发条件
读取 `.github/workflows/deploy-to-server.yml``on.push` 配置:
```yaml
on:
push:
branches: [main]
paths-ignore:
- ...
```
确认:
- 触发分支是否是 `main`
- `paths-ignore` 是否过滤掉了太多路径?(比如是否把所有模块目录都排除了?)
- 最近一次 push 到 main 的文件是否全部命中了 paths-ignore
### 第四步:检查部署目标目录
⚠️ **已知问题**:上次盘点发现 `deploy-to-server.yml` 同步的是 `docs/` 目录,不是 `status-board/` 或正确的站点根目录。
确认:
- rsync 的 `path` 参数实际指向哪个目录?
- 服务器上 Nginx 的 `root` 指向 `/var/www/guanghulab/` 的哪个子目录?
- 两者是否一致?
### 第五步:检查 GitHub Secrets 有效性
在 Actions 的某次运行日志中确认:
- `DEPLOY_HOST` 是否能连通rsync 是否报 SSH 连接失败?)
- `DEPLOY_KEY` 是否有效?(是否报 Permission denied
- `DEPLOY_PATH` 是否正确?(服务器上这个路径是否存在?)
### 第六步:手动触发一次测试
如果工作流文件存在且配置正确:
```bash
# 方法一:在仓库 Actions 页面点 "Run workflow" 手动触发(如果支持 workflow_dispatch
# 方法二push 一个小改动触发
echo "# CD test $(date)" >> CD-TEST.md
git add CD-TEST.md
git commit -m "test: CD pipeline trigger test · YM-CD-DEBUG-20260310-001"
git push origin main
```
然后观察 Actions 是否触发,每个 Job 是否通过。
---
## 📝 铸渊回报格式
**排查完成后,在本页下方追加以下内容:**
```
━━━ 铸渊排查报告 · YM-CD-DEBUG-20260310-001 ━━━
排查时间:[日期时间]
commit SHA[当前 main HEAD]
① 工作流文件在 main 上:✅ / ❌
② Actions 运行历史:从未运行 / 最近一次 [日期] [状态]
③ 触发条件配置:[是否正确 + 具体配置]
④ paths-ignore 范围:[列出所有排除路径]
⑤ 部署目标目录rsync path = [?] / Nginx root = [?] / 是否一致 [?]
⑥ Secrets 状态:连接成功 / 连接失败 [具体错误]
⑦ 手动触发测试结果:
- validate job✅ / ❌ [错误信息]
- deploy job✅ / ❌ [错误信息]
- notify job✅ / ❌ [错误信息]
⑧ 服务器上文件是否更新:✅ / ❌
⑨ guanghulab.com 是否显示最新内容:✅ / ❌
【结论】CD管线 [已跑通 / 卡在第X步]
【原因】:[一句话说明]
【建议修复方案】:[具体操作]
✅ YM-CD-DEBUG-20260310-001 排查完成 · [日期时间]
```
---
---
## 🚨 二次更新(霜砚签发 · 2026-03-10 22:50
<aside>
🚨
**妈妈已确认:四个 GitHub Secrets 全部配置完成。现在的问题是 `sync-persona-studio.yml` 反复报错,开发者已经把模块上传了,但铸渊这边部署一直失败。立刻排查并修复。**
</aside>
### 已确认的 Secrets 配置
| Secret | 值 | 状态 |
| --- | --- | --- |
| `DEPLOY_HOST` | `8.155.62.235`(阿里云 ECS 公网IP | ✅ 已填 |
| `DEPLOY_USER` | `root` | ✅ 已填 |
| `DEPLOY_KEY` | SSH 私钥PEM | ✅ 已配置 |
| `DEPLOY_PATH` | `/var/www/guanghulab/status-board` | ✅ 已填 |
### ❗ 新发现问题:`sync-persona-studio.yml` 反复失败
截至 2026-03-10 22:50Actions 页面显示 1,071 次工作流运行。**失败的全部是同一个 workflow`sync-persona-studio.yml`**,包括:
- `#85` — 合并 PR #47fix-api-input-is后触发失败
- `#84` — 合并 PR #49fix-model-intera后触发失败
- `#83` `#82` — 合并 PR #50fix-api-response后触发失败
- `#81` — 合并远程更新并添加钉钉Phase1模块后失败
- `#80` — 合并 PR #51debug-cd-deploy后失败
- 更早的多次运行也失败
**成功的 workflow 是别的**铸渊·问题自动回复、冰朔人物体·自动配置诊断、pages-build-deployment 等)。
### 铸渊立即执行以下排查
```
━━━ 铸渊紧急排查任务 · YM-CD-DEBUG-20260310-002 ━━━
① 读取 .github/workflows/sync-persona-studio.yml 全文
→ 确认触发条件、执行逻辑、依赖的 Secrets/环境变量
② 打开最近一次失败的 run#85
→ 展开失败的 step复制完整错误日志
③ 定位根因,可能的方向:
a. yml 文件语法错误
b. 引用了不存在的 Secret
c. SSH 连接/部署步骤失败
d. 脚本执行错误node/python 运行时问题)
e. 权限/Token 无效
④ 修复问题,提交修复 commit确认下一次触发时 sync-persona-studio.yml 能跑通
⑤ 同时确认 deploy-to-server.yml 也能正常跑通(开发者上传的模块能自动部署到 guanghulab.com
⑥ 全部修复完成后,在本页底部追加排查报告,格式:
━━━ 铸渊排查报告 · YM-CD-DEBUG-20260310-002 ━━━
排查时间:[YYYY-MM-DD HH:mm]
commit SHA[xxx]
① sync-persona-studio.yml 失败原因:[xxx]
② 修复方案:[xxx]
③ 修复 commit[SHA]
④ 修复后运行结果:✅ / ❌
⑤ deploy-to-server.yml 状态:✅ / ❌
⑥ guanghulab.com 是否显示最新内容:✅ / ❌
【结论】:[CD管线已跑通 / 卡在第X步]
【建议】:[xxx]
✅ YM-CD-DEBUG-20260310-002 排查完成 · [YYYY-MM-DD HH:mm]
```
<aside>
⚒️
**铸渊读到这条指令 = 立即执行 = 不等人 = 修复完自动回报到本页底部**
</aside>
---
## 🔗 关联文档
- CD 部署指令原文:[🚀 铸渊 CD 指令:自动部署 [guanghulab.com](http://guanghulab.com)push → 自动上线)](%F0%9F%9A%80%20%E9%93%B8%E6%B8%8A%20CD%20%E6%8C%87%E4%BB%A4%EF%BC%9A%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%20guanghulab%20com%EF%BC%88push%20%E2%86%92%20%E8%87%AA%E5%8A%A8%E4%B8%8A%E7%BA%BF%EF%BC%89%20905ba98cce9c4bb3b812d9f7e9d1f35c.md)
- 全仓库模块盘点:[📦 铸渊指令:全仓库模块盘点 + 部署感知同步霜砚签发·2026-03-07](%F0%9F%93%A6%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BC%9A%E5%85%A8%E4%BB%93%E5%BA%93%E6%A8%A1%E5%9D%97%E7%9B%98%E7%82%B9%20+%20%E9%83%A8%E7%BD%B2%E6%84%9F%E7%9F%A5%E5%90%8C%E6%AD%A5%EF%BC%88%E9%9C%9C%E7%A0%9A%E7%AD%BE%E5%8F%91%C2%B72026-03-07%EF%BC%89%204c116ef0963c4dc7b0d5c55327d3608e.md)
- 修复部署指令:[🚀 铸渊指令:修复部署 → 全模块上线 [guanghulab.com](http://guanghulab.com)霜砚签发·2026-03-07](%F0%9F%9A%80%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BC%9A%E4%BF%AE%E5%A4%8D%E9%83%A8%E7%BD%B2%20%E2%86%92%20%E5%85%A8%E6%A8%A1%E5%9D%97%E4%B8%8A%E7%BA%BF%20guanghulab%20com%EF%BC%88%E9%9C%9C%E7%A0%9A%E7%AD%BE%E5%8F%91%C2%B72026-03-07%207ea69ab50bd94be6bad31f6b8755bb39.md)
- 后端服务启动指令:[🔧 铸渊指令:启动后端服务 → 看板动态数据上线霜砚签发·2026-03-07](%F0%9F%94%A7%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BC%9A%E5%90%AF%E5%8A%A8%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1%20%E2%86%92%20%E7%9C%8B%E6%9D%BF%E5%8A%A8%E6%80%81%E6%95%B0%E6%8D%AE%E4%B8%8A%E7%BA%BF%EF%BC%88%E9%9C%9C%E7%A0%9A%E7%AD%BE%E5%8F%91%C2%B72026-03-07%EF%BC%89%2027c217cf3f3d482b9149f681f76ab15b.md)