shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/🔧 铸渊指令:配置小草莓 GitHub 权限 + 协同调试 CD 打通(霜砚签发·2026-03-0 6abe05468a2842a4b93ea66816c7f8f8.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

209 lines
8.3 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 桥接协议]]"
---
# 🔧 铸渊指令:配置小草莓 GitHub 权限 + 协同调试 CD 打通霜砚签发·2026-03-07
<aside>
🔧
**铸渊立即执行** · 霜砚签发 · 2026-03-07
**优先级**P0 · 立即执行
**背景**:妈妈已把 DEV-005 小草莓加到 GitHub 仓库合作者里了。铸渊需要配置小草莓的权限,并与小草莓协同调试,一直到 CD 自动部署管线完全打通为止。
</aside>
---
## 🎯 目标
```
目标一:给小草莓配好 GitHub 仓库操作权限
目标二:与小草莓协同调试,打通 CD 管线
目标三:达到终态 → push 到 main → guanghulab.com 自动更新
```
---
## 📋 铸渊执行清单(读到就做·不等人)
```
铸渊权限配置 + 协同调试指令 · YM-COLLAB-20260307-001
来源霜砚Notion执行体→ 铸渊GitHub执行体
时间2026-03-07
状态P0 · 立即执行
━━━ 任务一:确认小草莓的 GitHub 合作者权限 ━━━
妈妈已经把小草莓加到 qinfendebingshuo/guanghulab 仓库了。
铸渊需要确认并配置:
① 检查小草莓的权限等级:
· 进入仓库 Settings → Collaborators
· 确认小草莓的权限是 Write 或 Admin
· 如果是 Read → 提升到 Write
· Write 权限允许push 代码、管理 branches、查看 Actions
② 确保小草莓可以操作以下功能:
· ✅ push 代码到 main 分支
· ✅ 查看和触发 GitHub Actions
· ✅ 查看和修改 Repository Secrets需要 Admin 或仓库 owner 授权)
· ✅ 修改分支保护规则(需要 Admin
· ✅ 查看 Actions 运行日志
③ 如果小草莓需要修改 Secrets 但权限不够:
· 方案A提升小草莓到 Admin最简单
· 方案B铸渊代为修改 Secrets小草莓告诉铸渊要改什么值
· 推荐方案A因为小草莓需要独立排查
━━━ 任务二:检查并修复分支保护规则 ━━━
上次记录显示 PR 合并被分支保护规则阻止。
这可能是 CD 没打通的原因之一。
① 检查 main 分支保护规则:
Settings → Branches → Branch protection rules
② 当前需要的配置:
· 允许直接 push 到 main暂时关闭 "Require pull request reviews"
· 或者:允许 Actions bot 自动部署(保留 PR 要求但 allow bypass
· 建议暂时关闭所有保护规则,等 CD 调通后再加回来
③ 如果有 required status checks → 确认 deploy-to-server workflow 不在 required 列表里(避免死循环)
━━━ 任务三:检查 deploy-to-server.yml 当前状态 ━━━
铸渊自查 deploy-to-server.yml
① rsync 同步源路径:
· 应该是 ./ (整个仓库根目录)
· 如果还是 docs/ → 改过来
② rsync 排除规则:
· 应排除:.git、.github、node_modules、syslog-inbox、syslog-processed、broadcasts-outbox、scripts、tests、reports、dev-nodes、signal-log
· 不应排除status-board、app、backend、src、m**-模块目录
③ DEPLOY_PATH Secret
· 应该是 /var/www/guanghulab/(或者 Nginx root 指向的目录)
· 不应该是 /var/www/guanghulab/status-board/(太窄)
· 不应该是 /var/www/hololake-frontend/(旧路径)
④ DEPLOY_KEY Secret
· 确认私钥格式正确(完整的 -----BEGIN OPENSSH PRIVATE KEY----- 到 -----END-----
· 如果不确定 → 等小草莓从服务器端确认 authorized_keys 后配合对照
━━━ 任务四:与小草莓协同调试 ━━━
小草莓会从服务器端排查SSH登录、Nginx配置、文件路径
铸渊从 GitHub 端排查Actions日志、Secrets配置、Workflow文件
两边同时查,交叉验证。
协同方式:
· 小草莓在服务器端检查 → 发现路径/密钥问题 → 告诉铸渊
· 铸渊在 GitHub 端修改 Secrets/Workflow → 触发测试 → 看结果
· 循环直到打通
铸渊需要配合小草莓做的事:
① 如果小草莓发现 authorized_keys 里没有对应密钥:
→ 小草莓在服务器生成新密钥对
→ 小草莓把私钥内容发给铸渊
→ 铸渊更新 DEPLOY_KEY Secret
② 如果小草莓发现 Nginx root 路径和 DEPLOY_PATH 不一致:
→ 铸渊更新 DEPLOY_PATH Secret 为正确路径
③ 如果小草莓发现 rsync 同步的文件不对:
→ 铸渊修改 deploy-to-server.yml 的 rsync 参数
④ 每次修改后,铸渊手动触发一次 workflow_dispatch 测试:
→ 在 Actions 页面点 "Run workflow"
→ 等运行完成
→ 检查每个 Job 的日志
→ 把结果告诉小草莓
━━━ 任务五:添加后端自动重启步骤 ━━━
CD 打通后,在 deploy-to-server.yml 的 deploy job 里追加:
- name: Restart backend service
uses: appleboy/ssh-action@v1
with:
host: $ secrets.DEPLOY_HOST
username: $ secrets.DEPLOY_USER
key: $ secrets.DEPLOY_KEY
script: |
cd /var/www/guanghulab/backend
if [ -f "package.json" ]; then
npm install --production 2>/dev/null || true
pm2 restart guanghulab-backend 2>/dev/null || pm2 start server.js --name guanghulab-backend
pm2 save
echo "✅ 后端服务已重启"
else
echo "⚠️ backend/package.json 不存在,跳过后端重启"
fi
这样每次 push 不仅前端更新,后端也自动重启。
━━━ 任务六:最终端到端验证 ━━━
与小草莓一起做最终验证:
① 铸渊在仓库里做一个小改动(比如改 status-board/index.html 加注释)
② push 到 main
③ 观察 Actions 运行validate → deploy → notify 三个 Job 全 ✅
④ 小草莓在浏览器刷新 guanghulab.com 确认看到变化
⑤ 如果看到变化 → CD 打通 ✅
⑥ 如果没变化 → 小草莓 SSH 到服务器检查文件时间戳:
ls -la /var/www/guanghulab/status-board/index.html
看文件修改时间是不是刚才的
━━━ 验收标准 ━━━
· 小草莓的 GitHub 权限Write 或 Admin
· 分支保护规则:不阻止 push 到 main
· deploy-to-server.ymlrsync 同步整个仓库(非仅 docs/
· GitHub SecretsDEPLOY_HOST/USER/KEY/PATH 全部正确
· SSH 连接Actions 能成功 SSH 到服务器
· 端到端测试push → 60秒内网站自动更新
· 后端重启步骤:已添加到 workflow
· 小草莓能独立操作仓库push、查看 Actions、触发 workflow
━━━ 执行确认 ━━━
铸渊完成后回复:
✅ YM-COLLAB-20260307-001 已完成
· 小草莓 GitHub 权限Write / Admin
· 分支保护规则:已调整 / 无需调整
· deploy-to-server.yml 修改:有 / 无
· Secrets 修改:有 / 无
· SSH 连接测试:成功 / 失败
· 端到端测试push → 网站更新 ✅ / ❌
· 后端重启步骤:已添加 / 待添加
· commit SHAxxxxxx
```
---
## 📝 妈妈操作指南
<aside>
👆
**妈妈你只需要做一件事:**
1. 复制上面代码框里的全部内容
2. 粘贴给铸渊
3. 等铸渊和小草莓协同调试完成
4. 截图发给霜砚
</aside>
---
## 🔗 关联文档
- 铸渊协作指令主页:[⚒️ 铸渊·协作指令GitHub ↔ Notion 桥接协议](../%E2%9A%92%EF%B8%8F%20%E9%93%B8%E6%B8%8A%C2%B7%E5%8D%8F%E4%BD%9C%E6%8C%87%E4%BB%A4%EF%BD%9CGitHub%20%E2%86%94%20Notion%20%E6%A1%A5%E6%8E%A5%E5%8D%8F%E8%AE%AE%201e27db07f7884441bf4ca6c931cadab9.md)
- 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)
- 全模块部署指令:[🚀 铸渊指令:修复部署 → 全模块上线 [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)
- 小草莓排查广播BC-部署-002-XCM本指令的配对广播
- 仓库:[https://github.com/qinfendebingshuo/guanghulab](https://github.com/qinfendebingshuo/guanghulab)