部署机制
NESTA 的变更分流、制品构建、静态站同步与生产切换顺序。
生产发布以 Git 主干版本为单位。运行时应用与各静态站点按照受影响路径独立检查和构建,只有需要更新生产编排时才共同进入 Caddy 切换流程。
变更分流
| 变更 | 主要流水线 |
|---|---|
| Web、Gateway 或运行时依赖 | Web 检查、Gateway 测试、运行时发布 |
| 产品思想或 Guide 实现 | Guide 构建与发布 |
| 产品定义或 Product 实现 | Product 构建与发布 |
| UI 规范、共享 Token 或 Design 实现 | Design 构建与发布,并触发受 Token 影响的站点 |
| 开发者文档或 Dev 实现 | Dev 构建与发布 |
| NESTA 注册表或导航实现 | NESTA 主站构建与发布 |
| Caddy、Compose 或发布编排 | 所有受影响制品检查后更新生产编排 |
构建制品
- Web 生成浏览器应用制品;Gateway 生成与同一提交对应的容器镜像。
- 每个静态站生成独立、完整、可校验的
dist制品。 - CSS、JavaScript、图像和共享 Token 使用内容哈希文件名,HTML 与
robots.txt使用短缓存。 - 构建和校验只读取 Git 中的来源,不依赖在线目录或上一次发布结果。
发布顺序
识别影响范围
-> 并行检查与构建
-> 生成并保存制品
-> 创建并同步静态站目录
-> 切换 Web/Gateway 与 Caddy(如需要)
-> 检查全部受影响域名
首次增加静态域名时,必须先把完整制品同步到挂载目录,再让 Caddy 加载新虚拟主机。这样不会把空目录暴露到线上。后续仅修改某个静态站时,可以独立同步并冒烟,不需要重新发布 APP 或 Gateway。
发布边界
静态站点与 APP/Gateway 使用不同回滚边界:APP 通过不可变版本与指针切换回滚,静态站通过重新同步已验证制品恢复。发布脚本不得直接编辑线上文件,也不得把生产运行时状态提交到 Git。
具体 CI 门禁、命令和发布效率说明保留在 docs/ 工程资料中,不在公开开发者手册重复维护。