pr to deploy
把一个已经通过 review 和 CI 的 PR 合并到 main,并确认 GitHub Actions 成功发布到 Cloudflare Pages。
默认流程是:PR checks 通过 -> squash merge 到 main -> 等待 Deploy to Cloudflare Pages -> 验证线上站点。
前置条件
- PR 已被确认可以合并。
- 必要 checks 绿色,特别是构建检查。
- 当前操作只针对一个 PR。
- 不把 Cloudflare token、账号信息或本机配置写入仓库文件。
1. 确认 PR 状态
sh
gh pr checks <pr-number> --watch
gh pr view <pr-number> --json number,title,state,mergeStateStatus,reviewDecision,headRefName,baseRefName,url继续前确认:
baseRefName是main,除非用户明确要求其他 base。- checks 已通过。
- review 状态符合用户要求。
- PR 内容确实是本次要发布的范围。
如果 checks 失败,先修复失败原因,不要跳过检查合并。
2. 合并 PR
使用 squash merge,并删除远端分支:
sh
gh pr merge <pr-number> --squash --delete-branch如果 gh pr merge 输出本地 fast-forward 失败,不要立即重试合并。先确认 GitHub 上 PR 是否已经合并:
sh
gh pr view <pr-number> --json state,mergeCommit --jq '{state, mergeCommit: .mergeCommit.oid}'如果状态是 MERGED,同步本地 main:
sh
git switch main
git fetch origin
git pull --ff-only origin main不要使用 git reset --hard,除非用户明确批准。
3. 等待 Cloudflare Pages 部署
合并到 main 会触发 GitHub Actions 工作流 Deploy to Cloudflare Pages。
sh
gh run list --branch main --workflow "Deploy to Cloudflare Pages" --limit 1
gh run watch <run-id>如果需要查看失败日志:
sh
gh run view <run-id> --log-failed失败时按日志修复并重新走 PR 流程;不要在 Actions 里手动注入或泄露 secret。
4. 验证线上站点
部署成功后验证公开站点:
sh
curl -I https://claude-zh.cn
curl -fsSL https://claude-zh.cn/robots.txt按改动类型补充验证:
- 首页或指南改动:打开对应 URL,确认标题、正文、链接和导航可见。
- 安装脚本改动:确认
https://claude-zh.cn/scripts/install.sh或对应.ps1能返回最新内容。 - 下载文件改动:确认
public/downloads/对应路径可访问,校验 checksum 文件。 - Cloudflare Function 改动:用最小请求验证状态码和响应字段。
5. 发布记录
最终回复或发布记录里包含:
- 合并的 PR 链接。
- merge commit。
- GitHub Actions run 链接和结论。
- 线上验证命令与结果摘要。
- 如果部署失败,说明失败点、已采取动作和下一步。
回滚
如果线上发布出现问题,优先用一个新的 revert PR 回滚对应 merge commit:
sh
git switch -c revert/<pr-number>-brief-name origin/main
git revert <merge-commit>
npm run docs:build
gh pr create --title "Revert <original title>" --body-file <body-file>合并 revert PR 后再次等待 Deploy to Cloudflare Pages,并验证线上站点恢复。
Checklist
- [ ] PR checks 已通过。
- [ ] PR 范围和 base branch 已确认。
- [ ] 已 squash merge 到
main。 - [ ] 已等待
Deploy to Cloudflare Pages完成。 - [ ] 已验证线上站点或受影响资源。
- [ ] 已记录 PR、merge commit、Actions run 和验证结果。