## 背景与目标 目前 windup.xin 的 Release 创建后仍需手动部署。按确认后的需求,仅在 Release 发布后自动构建和部署该版本的确切提交,复用现有服务器目录与 Docker Compose。 ## 方案与边界 - 在现有 Version 工作流中增加 needs: release 的部署 job,避免 GITHUB_TOKEN 创建 Release 不触发另一工作流的问题;分支和 fork 不部署。 - 通过 GitHub Secrets 保存 SSH 凭据和已核实的主机公钥,连接现有生产目录;不修改服务器登录配置。 - 工作流和服务器锁串行部署,拒绝自动回退到旧版本;核实 tag 与 SHA、属于 main 的历史,再切换到确切提交,拒绝覆盖本地修改,保留 .env 与 Compose override。 - 构建前后端,前端临时目录编译成功才复制静态产物,启动后端和 worker 后检查健康状态;失败在 Actions 可见。 - 保留 CONTRIBUTING 的仅 Release 部署规则,将手动上线改为自动上线;普通 main 更新不部署。按用户本次明确要求不增加部署审批,main 的 PR、Review、CI 要求保留。关联已关闭的 #653,范围包含当前 Compose 中前后端与 worker。 - 不改路由、安全组、数据卷、应用功能,不实现自动数据库回滚;故障修复或 revert 通过 PR 合回 main。 ## 验收 - 部署脚本覆盖成功、重复与旧版本、脏工作区、构建失败和健康检查失败的针对性测试。 - GitHub Actions 语法检查通过,凭据不进入仓库或输出日志。 - 新 Release 触发部署;Actions 成功记录、服务器版本标记和公开健康检查共同确认结果。该 PR 不主动提升 VERSION 或发布新版本。
背景与目标
目前 windup.xin 的 Release 创建后仍需手动部署。按确认后的需求,仅在 Release 发布后自动构建和部署该版本的确切提交,复用现有服务器目录与 Docker Compose。
方案与边界
验收