Engineering and CI - wongyiuming/FrontierCloud-Gin GitHub Wiki

工程与 CI

当前运维入口(2026-10-14)

当前 updater 清理交付见 PR #15,公开版本为 fc6adc75c7cdb9064163f938a31f176add843e0a。源码、Updater 镜像发布、fc 的 Updater 校验与旧 CD 入口已移除。保留证书 certificate-agent,它只负责 TLS 生命周期,不承担项目升级。

当前发布只编译、发布 Web/Nginx 两种镜像;证书 agent 使用 Web 镜像中的证书命令。升级由每台主机显式执行 fc upgrade plan/apply/open,无自动整群发布、后台 Docker socket 升级或现场源码编译。数据库代际为 7,本次没有 DDL 变化。

现行命令、备份和恢复边界见 fc 手动升级与边界,源码契约以 main 的 运维手册 和 升级契约 为准。RN 预生产和外部 CD 已退役,不能声称完成 live staging 验收。

本次生产执行状态见 fc 手动升级与边界;公开发布成功不等于生产更新完成。

2026-10-11 及此前的历史记录(旧命令及版本不用于当前部署)

仅 Go/Gin 运行产品。Python 应用源码已删除,仅 tests / scripts 使用 Python 驱动真实 Gin 测试。没有 Python 分支或混合运行时测试。

源码测试 Hosted CI 最长三分钟,轻量源代码/策略/JS 烟测,不做真实数据库、竞态、五节点或浏览器验收;该上限没有放宽。另设公开运行镜像编译工作流,必须等待同一 SHA 的最新源码 push CI 成功后才构建。编译 job 上限十分钟,不承载业务回归,详见 公开镜像交付。

重量级验证在开发机使用独立项目、全局锁及 CPU/内存上限;同一业务链避免竞争,独立工作可在资源预算内并行,也可借用本机算力。不要无上限并发,也不要把所有互不依赖的编译一概串行化。

五节点为一个业务主节点、两直连存储、两中继存储;主节点分别验证 SQLite/MySQL,四个存储端均为 SQLite 且无 Nginx/升级器。

请区分发现、执行、通过、跳过和未选择的外部门禁;不能用测试总数冒充业务覆盖。测试退役与替换记录。此前迁移验收已完成,见 验证证据;每次新发布仍需验证自己的精确源码提交,不能继承旧版本“已通过”的结论。

历史启用预发布时的标准流程为:开发机测试通过 → 推送 dev → 精确 dev CI 成功 → 独立编译及三个公开镜像验证成功 → RN 事件 CD 完成、运行版本匹配及公开行为验收 → 创建 dev → main PR → 检查与 GitHub 自动审查 → 合并。生产由维护者手动升级,不能将以前一次性跳过预发布的授权套用到本轮。

当前预发布门禁例外与 Python 范围

所有者已撤销 RN 预发布和外部 CD,等待新 IP。STAGING_CD_ENABLED=false;当前 dev 仍必须通过精确提交开发机验收、源码 CI 和三个镜像来源校验。没有预发布验收,不可伪造,也不授权合并 PR #9 或升级生产主节点。当前 main 的旧通知器在合并新开关前可能在镜像发布后通知失败,应单列该结果。

Python app/、main.py 与 Python updater 已删除;scripts/、tests/ 的 Python 工具保留。旧持久 DIND/全群升级工具拒绝当前自动 TLS 拓扑,使用 test-native-matrix.sh 验收一 Master、二 Direct、二 Relay。

⚠️ **GitHub.com Fallback** ⚠️