Skip to content

[Feature]: Release 发布后自动部署生产环境 #952

Description

@huyanxius

背景与目标

目前 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 要求保留。关联已关闭的 feat(ops): 后端部署由 Release 触发,替代手工上线 #653,范围包含当前 Compose 中前后端与 worker。
  • 不改路由、安全组、数据卷、应用功能,不实现自动数据库回滚;故障修复或 revert 通过 PR 合回 main。

验收

  • 部署脚本覆盖成功、重复与旧版本、脏工作区、构建失败和健康检查失败的针对性测试。
  • GitHub Actions 语法检查通过,凭据不进入仓库或输出日志。
  • 新 Release 触发部署;Actions 成功记录、服务器版本标记和公开健康检查共同确认结果。该 PR 不主动提升 VERSION 或发布新版本。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions