我们的发布管道配置了多个阶段。对于合并到 master 的每个 pull request,都会自动创建一个新版本。我们有DEV => TST => REL => PRD
.
现在,我们还使用这些阶段来执行自动化测试。所以在DEV之后有一个阶段来做一些基本的自动化测试(AT)。所以我们最终得到DEV => AT => TST => REL => PRD
. AT 依赖于 DEV 才能正常运行。
我们的问题如下。当版本 X 正在执行 AT 并且同时合并拉取请求导致发布 X+1 部署到 DEV 时,这会导致版本 X 的 AT 失败。有没有办法让 Release X+1 在队列中等待,直到为 Release X 完成 AT?
我们也可以通过在部署期间避免 DEV 停机来解决这个问题,或者将测试隔离在不受自动部署等影响的环境中。但是根据我们所拥有的,以及我们可以用来改进它的时间,我们希望知道是否有办法让管道实例更加了解彼此......