name: deployment-sop description: 部署工作流程、预部署验证和烟雾测试模式。在部署到暂存或生产环境、运行烟雾测试或验证部署时使用。
部署SOP技能
目的
路由到现有的部署SOP并提供检查清单,确保安全、验证的部署。此技能不复制SOP内容——它链接到权威来源。
适用场景
在以下情况下调用此技能:
- 部署到暂存或生产环境
- 运行预部署验证
- 执行后部署烟雾测试
- 访问Linux开发机器进行部署
- 协调发布活动
权威参考资料(必须阅读)
| 文档 | 位置 | 目的 |
|---|---|---|
| Semantic Release SOP | docs/ci-cd/Semantic-Release-Deployment-SOP.md |
发布自动化工作流程 |
| Staging/UAT Release SOP | docs/sop/STAGING-UAT-RELEASE-SOP.md |
UAT验证过程 |
| Linux Dev Machine Access | docs/deployment/LINUX-DEV-MACHINE-ACCESS-SOP.md |
Pop OS开发服务器访问 |
| Production Server Access | docs/deployment/PRODUCTION-SERVER-ACCESS-SOP.md |
生产部署 |
预部署检查清单
在任何部署之前:
- [ ] 所有CI检查通过(GitHub Actions绿色)
- [ ] PR合并到目标分支(
dev用于暂存,master用于生产) - [ ] Linear中无未解决的阻塞问题
- [ ] 数据库迁移在本地测试
- [ ] 环境变量已验证
# 部署前验证
yarn ci:validate
yarn build
后部署烟雾测试
部署完成后:
- [ ] 健康端点响应:
curl https://{domain}/api/health - [ ] 数据库连接已验证(检查健康响应)
- [ ] 认证流程工作正常(登录/注册)
- [ ] 关键用户流程功能正常
- [ ] 日志中无新错误(PostHog/Coolify)
# 烟雾测试命令
curl -s https://{domain}/api/health | jq .
# 期望:{"status":"healthy","timestamp":"..."}
部署证据模板
用于Linear票据附件:
## 部署证据 - {{TICKET_PREFIX}}-XXX
### 环境
- **目标**: 暂存 / 生产
- **分支**: `{branch_name}`
- **提交**: `{commit_sha}`
### 预部署
- [x] CI检查通过
- [x] PR合并
- [x] 迁移已验证
### 后部署
- [x] 健康检查: 通过
- [x] 认证流程: 通过
- [x] 烟雾测试: 通过
### 验证
curl -s https://{domain}/api/health
{"status":"healthy","timestamp":"2025-XX-XXTXX:XX:XX.XXXZ"}
回滚程序
如果部署失败:
- 识别故障 - 检查Coolify日志,PostHog错误
- 回滚提交 -
git revert {commit_sha} - 推送回滚 - 触发自动回滚部署
- 验证回滚 - 再次运行烟雾测试
- 记录事件 - 用证据更新Linear票据
停止条件
禁止
- 在CI检查失败时部署
- 在生产环境跳过烟雾测试
- 未在本地测试就部署数据库迁移
- 在活动事件上强制部署
必须
- 健康检查必须在5分钟内通过
- 生产部署必须有暂存验证在先
- 回滚计划必须在生产部署前记录
分支 → 环境映射
| 分支 | 环境 | 自动部署 |
|---|---|---|
dev |
暂存 (Pop OS) | 手动拉取 |
master |
生产 (Coolify) | 自动 |
注意: 合并到dev构建Docker镜像,但需要在Pop OS上手动./scripts/dev-docker.sh pull。