具有 git-flow 的 Azure DevOps 发布管道

Azure DevOps release pipeline with git-flow

我正在尝试在 Azure DevOps(本地)中配置发布管道以支持 git-流策略。我想要实现的目标:

  1. 承诺 'release/*' 触发软件构建并发布到 QA 的位置
  2. 承诺 'master' 从第 1 步获取相同 软件构建(工件)并发布到生产位置

因此,当我执行 git-flow 'start release' 时,软件可供 testing/QA 使用,而当我 'finish release' 时,它可供用户使用。

我的构建管道工作正常,它由发布分支触发并以发布工件任务结束。我的发布管道使用此工件并具有 QA 和生产阶段,但生产阶段从未触发。对于 QA,我有一个用于 'release/*' 的工件过滤器和用于 'master'.

的生产过滤器

有没有办法在提交到 'master' 时触发我的第二个发布管道阶段?

不幸的是,作为一般流程,这是行不通的。当您承诺发布分支时,您的建筑物来自发布分支。当您提交到 master 分支时,您将不得不重新构建一个工件,以便从 master 提交中定向。

您要么需要满意:

  • 1 x 构建从提交到发布或主控和发布到两个环境
  • 2 个单独的版本用于发布到不同的环境

对于您的问题,如果您想根据对构建工件源中不同分支的提交自动触发部署到不同阶段,这是不可行的。

同意 Bevan 的观点,如果您只想使用构建工件作为发布管道的源,您可以为 QAProduction 阶段设置 Pre-deployment approvals。当您希望将 release 分支的构建工件部署到 QA 阶段时,您可以在 QA 阶段批准部署。当您希望将 master 分支的构建工件部署到 Production 阶段时,您可以在 Production 阶段批准部署。

您还可以创建两个构建管道,一个用于主分支,一个用于发布分支。然后为两个不同的构建工件创建单独的发布管道。一个用于部署到 QA 阶段,另一个用于部署到 Production 阶段。