02. 部署机制 (Deployment)
Code: .github/workflows/cd.yml
KeyApp 采用基于 gh-pages 分支的自动化部署方案。
发布命令
pnpm release: 完整发布流程(构建、上传、版本更新、推送、触发 stable workflow)。pnpm release:resume: 恢复流程(自动检测发布进度,衔接 PR/触发 stable workflow)。
发布流程会在主分支保护时自动走 PR 模式,并通过状态检测确保 gh-pages/dweb/metadata.json 与目标版本一致。
部署流程
- 触发: 代码合并到
main分支。 - 构建: GitHub Actions 启动构建任务,生成
dist/产物。 - Force Push:
- Action 脚本会初始化一个新的 git 仓库。
- 将
dist/内容作为唯一的 commit。 - 强制推送 (
git push -f) 到gh-pages分支。
为什么 Force Push?
- 减小体积: 部署分支不需要保留历史记录,强制推送避免了
.git目录无限膨胀。 - 原子更新: 每次部署都是全新的状态,避免了增量更新可能导致的文件残留问题。
环境配置
需要在 GitHub 仓库设置中:
- Settings -> Pages -> Source: 选择 Deploy from a branch。
- Branch: 选择 gh-pages / root。
