fix(deploy): 切换时重建单个 PM2 应用定义并保留回滚日志 #4

Merged
WuYongJie merged 1 commits from codex/production-48-pm2-definition into main 2026-10-30 19:16:50 +08:00
Collaborator

PM2 对已有应用执行 startOrRestart 时仅更新了环境变量,保留旧 cwd 和程序路径,使候选构建验活失败。实际首次切换已自动回滚至原 Qhoy 构建并验证健康。

改为校验单应用配置后,仅删除并重新创建 ai-chatbot 的 PM2 定义,使 cwd、程序路径与环境同时生效;其他应用保持不变。启动失败时同样按旧定义恢复。显式 --retry-rolled-back 仅允许重试已核实回滚的尝试,保留旧日志,并区分制品 sourceCommit 与维护工具 operatorCommit。已校验的 main 制品不会改写来源,也不需要为工具修复重新传输。

验证:26 项回滚/路径/容量/副本/PM2 定义测试、秘密检查与 diff 检查通过。生产原构建已恢复,当前服务健康;后续使用既有固定 main 制品完成重试和公网验收。未修改业务代码或数据库,历史全量 lint 诊断仍按之前记录保留。

最终验收:使用 main 制品 10efb4c1、构建 ID YPc53FvfeTSw_1kVbgLDe,由维护工具 main ae4605d4 成功切换;发布标签 production-48-20261030-10efb4c1 已推送。26 项测试在 Windows 和 Ubuntu 均通过。公网命中新构建,配置 JSON 与发布前一致,旧静态资源返回 200,前台浏览器呈现品牌/公告/灵感列表。其他 PM2 应用 PID 与配置不变,原 25 个源码改动和环境文件元数据保留,启动快照已持久化且系统服务 enabled。

验收边界:未发起收费生图或操作客户账户;既有全量 lint 诊断与外链素材加载问题仍保留。离线构建的静态页标签标题会回退 AI Chatbot,页面内品牌配置正常;公开品牌作为构建输入另行完善。当前磁盘仍约余 1.7 GiB,本轮没有清理历史数据。

PM2 对已有应用执行 startOrRestart 时仅更新了环境变量,保留旧 cwd 和程序路径,使候选构建验活失败。实际首次切换已自动回滚至原 Qhoy 构建并验证健康。 改为校验单应用配置后,仅删除并重新创建 ai-chatbot 的 PM2 定义,使 cwd、程序路径与环境同时生效;其他应用保持不变。启动失败时同样按旧定义恢复。显式 --retry-rolled-back 仅允许重试已核实回滚的尝试,保留旧日志,并区分制品 sourceCommit 与维护工具 operatorCommit。已校验的 main 制品不会改写来源,也不需要为工具修复重新传输。 验证:26 项回滚/路径/容量/副本/PM2 定义测试、秘密检查与 diff 检查通过。生产原构建已恢复,当前服务健康;后续使用既有固定 main 制品完成重试和公网验收。未修改业务代码或数据库,历史全量 lint 诊断仍按之前记录保留。 最终验收:使用 main 制品 `10efb4c1`、构建 ID `YPc53FvfeTSw_1kVbgLDe`,由维护工具 main `ae4605d4` 成功切换;发布标签 `production-48-20261030-10efb4c1` 已推送。26 项测试在 Windows 和 Ubuntu 均通过。公网命中新构建,配置 JSON 与发布前一致,旧静态资源返回 200,前台浏览器呈现品牌/公告/灵感列表。其他 PM2 应用 PID 与配置不变,原 25 个源码改动和环境文件元数据保留,启动快照已持久化且系统服务 enabled。 验收边界:未发起收费生图或操作客户账户;既有全量 lint 诊断与外链素材加载问题仍保留。离线构建的静态页标签标题会回退 `AI Chatbot`,页面内品牌配置正常;公开品牌作为构建输入另行完善。当前磁盘仍约余 1.7 GiB,本轮没有清理历史数据。
WuYongJie added 1 commit 2026-10-30 19:16:36 +08:00
WuYongJie merged commit ae4605d479 into main 2026-10-30 19:16:50 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lunanting/ai-chatbot#4
No description provided.