【问题标题】:Whats the difference between a build pipeline and a release pipeline in Azure DevOps?Azure DevOps 中的构建管道和发布管道有什么区别?
【发布时间】:2020-03-07 20:43:29
【问题描述】:

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

他们似乎也这样做,甚至不提供 .` YAML 的支持。那么这里的主要区别是什么?使用发布管道而不是通常的构建管道可以做什么?

【问题讨论】:

    标签: azure azure-devops azure-pipelines devops


    【解决方案1】:

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

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

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

    使用新管道,您通常使用第一个 Stage构建您的工件,然后使用下一个 Stages 来部署它 - 类似于之前但在 one 模块中。

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

    结论:如果您使用新的多阶段“Pipeline”模块,您不应该再使用经典的 Release Pipelines

    【讨论】:

    • 感谢您的澄清!现在这对我来说更有意义。然而,奇怪的是,微软的一些官方文档仍然指向这个“发布”管道,而且我在网上找到的很多提示/教程都使用不同版本的不同 UI。
    • 部署组怎么样?以前,它们仅受发布管道支持。
    • @Flex 抱歉,我没有关于那个的其他信息。
    • @MartinBrandl,我对 ADO 还是很陌生——当您提到多阶段管道模型与经典的发布管道时,您是说我们应该使用管道 => 管道进行构建过程,并使用 Pipelines => Releases 通过将构建工件添加到多阶段发布来创建多阶段部署?
    • @Chris 不,您不应再使用“发布”模块。相反,您应该编写多阶段管道(在“管道”模块内),其中您的第一个阶段应该是“构建”阶段,然后您还有一个部署阶段....
    【解决方案2】:

    Yaml 还在开发中,发布管道中的一些功能无法完全替代,例如:

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

    同样,构建管道中的一些功能也没有被完全替换,例如

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

    所以,随着 yaml 的发展,它的功能会越来越全面,但是现在发布管道的一些特性还不能完全替代,发布管道还是有价值的。

    【讨论】:

    • 虽然 YAML PR 触发器不适用于 AzureRepos,但您可以使用构建策略进行设置。
    猜你喜欢
    • 2019-10-07
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2020-12-23
    • 2020-11-26
    相关资源
    最近更新 更多