新服务接入统一 CI
- 1确定分支与目标环境
- 2接入固定模板
- 3分配 Runner
- 4配置最小身份
- 5MR 与受保护分支验证
先确定服务职责、构建上下文和发布目标,再选择验证、构建及发布 Runner。云身份按区域和环境配置,共享模板以固定版本引用;分别验证 MR 不触发发布、受保护分支能够构建,以及发布任务仅能访问指定目标。
多服务和模型项目需要稳定的构建、测试与发布流程。项目围绕自托管 GitLab、共享 CI 模板、隔离 Runner、不可变制品和运行观测建立研发基础设施,同时维护代码镜像与服务状态页。
网关同一镜像 digest 从测试晋级生产;测试环境完整的发布、回滚、再发布 180 秒。
Runner 按服务拆分后,静态页发布排队时间的单次对照。
单次对照;镜像构建作业本身没有变快,收益来自排队与流程调整。
平台 CI 面向多服务与模型工程,统一代码验证、镜像构建和环境发布。应用代码更新频繁,模型权重体积大且更新节奏不同;国内与海外环境又使用不同云身份、镜像仓库和集群,单份流水线无法依靠共享管理员权限覆盖所有任务。
设计围绕三个问题展开:谁有权执行,实际发布的是哪个制品,发布后如何判断业务可用。MR 验证、测试发布和生产发布按信任区隔离;共享模板固定版本;部署验收把真实调用和精确回滚纳入流程。
业务仓库接入可信的服务端审查入口,模板自身按不可变版本发布。
MR 无生产写入权限;构建身份负责制品,发布身份仅操作指定区域和环境。
代码镜像与模型底座分开,目标部署记录 digest,环境配置与发布锁显式管理。
部署状态、公开请求与业务记录分别核对,故障后检查恢复状态。
先确定服务职责、构建上下文和发布目标,再选择验证、构建及发布 Runner。云身份按区域和环境配置,共享模板以固定版本引用;分别验证 MR 不触发发布、受保护分支能够构建,以及发布任务仅能访问指定目标。
构建结果记录来源和不可变 digest,测试环境使用该制品验证。生产推广沿用已验收制品;出现问题时按旧 digest 与对应配置恢复,避免回滚时重新构建得到不同内容。
权重留在资产存储,模型与代码按不同节奏发布。模型加载完成后继续执行实际业务请求:历史部署曾在 modelReady 后出现公网 504,因此 readiness 不能作为唯一通过条件。该类故障记录推动增加有界的公开就绪检查,候选改动与已部署行为分别记录。
CI 模板曾经包含一道严格的 AI 代码审查门禁,10 月 8 日从全部流程移除;确定性的检查全部保留。
审查完整 diff,中等及以上问题阻止合并;模型失败、输出不完整或过期也阻止;误报只能通过受保护、与问题哈希绑定的说明豁免,业务合并请求不能给自己豁免。
审查结论不随重试改变口径;上线前用故意写入除零错误的合并请求验证门禁能拦住问题。
六个项目切换到不含 AI 任务的模板,单元测试、密钥扫描、受保护分支、生产手动发布和 Runner 隔离全部保留,历史审查报告留档。
移除后不默认重新启用 AI 审查;需要时作为审查前的提示,而不是阻止合并的硬门禁。