belongs_to
🔧 铸渊指令:配置小草莓 GitHub 权限 + 协同调试 CD 打通( 霜砚签发·2026-03-07)
🔧
铸渊立即执行 · 霜砚签发 · 2026-03-07
优先级 : P0 · 立即执行
背景 :妈妈已把 DEV-005 小草莓加到 GitHub 仓库合作者里了。铸渊需要配置小草莓的权限,并与小草莓协同调试,一直到 CD 自动部署管线完全打通为止。
🎯 目标
目标一:给小草莓配好 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.yml: rsync 同步整个仓库(非仅 docs/)
· GitHub Secrets: DEPLOY_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 SHA: xxxxxx
📝 妈妈操作指南
👆
妈妈你只需要做一件事:
复制上面代码框里的全部内容
粘贴给铸渊
等铸渊和小草莓协同调试完成
截图发给霜砚
🔗 关联文档
铸渊协作指令主页:⚒️ 铸渊·协作指令| GitHub ↔ Notion 桥接协议
CD 部署指令:[🚀 铸渊 CD 指令:自动部署 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 ( 霜砚签发·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