ADO管道定义的版本控制是如何工作的?


  1. Pipeline YAML文件是我们的repo的一部分
  2. 我们从单个主干分支进行部署

问题:之后的提交覆盖了之前提交的管道定义

我们首先在主干中运行一个提交的管道(称为#1)。部署到dev &测试成功。在我们将第一条的管道运行到UAT之前,我们向dev部署了一个新的提交(称为第二条)。新的提交(第二条)包含YAML中的管道定义更改。然后,我们将之前的管道(#1)运行到UAT,并尝试执行后来提交的(#2)YAML管道更改。

这是一个bug吗?它们的最佳实践适合这个场景吗?

这是一个意想不到的行为,我们期望管道定义尊重管道的提交快照,允许我们运行历史管道,而不是当时提交的管道定义版本。


管道可视化表示

Azure Pipeline是一个构建源代码的CI/CD工具。因此,如果您提到的两个管道是为同一个repo同一个分支构建的,并且您已经向该分支执行了一个新的提交(称为#2),那么您不能运行先前提交(如#1)的管道,除非您将代码更改转换回提交#1。

所有的构建都是管道运行的历史记录,重新运行以前的构建将运行具有当前定义和源代码的管道。

您可以在YAML中使用不同版本的源代码和管道更改为不同分支运行管道。例如,分支1的最新更改是提交#1,分支2的最新更改是提交#2。在使用branch2将新的commit #2部署到dev之后,您可以使用branch1为commit #1运行管道。参考版本控制系统获取更多信息。

最新更新