Azure DevOps中的构建管道和发布管道之间有什么区别?

时间:2019-11-12 07:05:59

标签: azure azure-devops azure-pipelines devops

我已经使用Azure DevOps文件在.yaml中建立了几个多阶段的构建管道。我已经阅读了有关可用的“发布管道”的信息,我想知道这些管道有什么好处?

他们似乎在做同样的事情,甚至没有提供。`YAML的支持。那么,这里的主要区别是什么?我可以通过使用发布管道而不是通常的构建管道来做什么?

2 个答案:

答案 0 :(得分:6)

在Azure DevOps中,在出现多阶段yaml管道(现在称为“ 管道””之前,通常使用 Build 管道进行构建 / 创建您的软件二进制文件(例如dotnet publish或ng build --prod),并将这些工件存储在Azure DevOps放置位置。

然后,您通常会有一个 Releasee 管道,该管道会被这些构建工件(软件二进制文件)触发,并部署到一个或多个阶段

将这两个管道(构建和发布)分开的原因是,您只想一次构建一个特定版本的软件,然后使用 相同 > 在您的每个目标环境(例如,开发/测试/生产)中的二进制文件。

使用新管道,通常使用第一个 Stage 来构建工件,然后使用下一个阶段部署-与之前但在 one 模块中。

如果您以前使用过构建和发布管道,则将在新的Pipeline模块中看到旧的构建定义,并在旧的发布模块中看到旧的发布定义。但是,他们从未将YAML引入发布管道,因为他们知道无论如何它们都将被多阶段管道所取代。

结论:如果您使用新的多阶段“ 管道”模块,则不再使用经典的发布管道

答案 1 :(得分:4)

Yaml仍在开发中,并且发行管道中的某些功能无法完全替换,例如:

  • YAML管道尚不支持排队策略。
  • YAML管道中不支持任务组。等等...

类似地,构建管道中的某些功能尚未完全替换,例如

  • Bitbucket Cloud当前不支持在标签上触发 回购。
  • YAML PR触发器仅在GitHub和Bitbucket Cloud中受支持。等等...

因此,随着yaml的发展,其功能将越来越全面,但是现在发布管道的某些功能无法完全替换,发布管道仍然具有价值。