【发布时间】:2018-09-09 14:27:30
【问题描述】:
目前
当新 PR 合并到 master 时,我们使用 CI 平台来构建、测试和发布新代码。 “发布”步骤非常简单/愚蠢,基本上运行 kubectl patch 并带有新推送的 docker 镜像的标签。
问题
当两个 PR 几乎同时合并时(例如:A,然后 B -- B 包括 A 的提交,反之则不然),可能会发生 B首先完成它的构建/测试,然后首先开始它的发布步骤。发生这种情况时,A 会发布第二个版本,即使它有较旧的代码。结果是B 的代码已被As 部署有效回滚的稳定状态。
我们希望尽可能地保持 CI/CD 的连续性,理想情况下没有:
- 序列化我们的 CI 管道(以便一次只运行一个工作流)
- 延迟/批处理我们的部署
Spinnaker 是否有解决此问题的功能或最佳实践?
【问题讨论】:
标签: spinnaker