部署到staging环境
可重复的staging安全部署流程。
演示目标: ex_staging/ 文件夹(模拟本地staging——非真实云环境)。
步骤
cd进入目标文件夹(ex_staging或@提及的路径)。- 检查 目标文件夹 的 Git 工作树:
git status --porcelain -- .(从目标文件夹内执行)或git status --porcelain -- ex_staging。 如果目标文件夹有未提交的更改,停止并警告。(课程单仓库中其他文件夹的脏状态可以在警告后忽略。) - 运行测试:
npm test。如果失败,停止并显示输出。 - 构建:
npm run build。如果失败,停止。 - 请求人工确认后再部署(外部操作 / 生产环境不可逆)。 在用户于本聊天中明确确认(OK)之前,不要执行部署。
- 确认后:
npm run deploy:staging(等同于node scripts/deploy.mjs staging)。- 在演示中,这会启动一个本地服务器并写入
.staging-url文件。 - 在真实仓库中,替换为
./scripts/deploy.sh staging或你的管道命令。
- 在演示中,这会启动一个本地服务器并写入
- 健康检查:读取
.staging-url并使用curl、Invoke-WebRequest或fetch调用GET {url}/health。 应返回 HTTP 200 和ok: true。 - 总结:部署内容、URL、健康检查结果。提示使用
npm run staging:stop停止演示。
规则
- 绝不要在测试失败或目标文件夹不干净时进行部署。
- 绝不要在没有用户明确请求/确认(交接门控)时进行部署。
- 始终显示每个命令的实际输出。
- 在此仓库中不要使用
staging.example.com—— 健康检查针对.staging-url中的本地URL。