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

时间:2019-11-15 17:28:20

标签: azure-devops azure-pipelines-release-pipeline git-flow

我正在尝试在Azure DevOps(内部)中配置发布管道以支持git-flow策略。我想要达到的目标:

  1. 承诺“发布/ *”会触发该软件的构建并将其发布到要进行质量检查的位置
  2. 承诺“掌握”步骤1中的相同软件版本(工件)并发布到生产位置

因此,当我执行git-flow“开始发行”时,该软件可用于测试/质量检查,而当我“完成发行”时,则可供用户使用。

我的构建管道工作正常,它由release分支触发,并以Publish Artifact任务结束。我的发布管道使用了此工件,并具有质量检查和生产阶段,但生产阶段从未触发。对于质量检查,我有一个用于“ release / *”的工件过滤器,而在生产中则有一个“主”过滤器。

有没有办法在提交“ master”时触发我的第二个发布阶段?

2 个答案:

答案 0 :(得分:1)

不幸的是,作为一般流程这不会起作用。当您承诺发布分支时,您的建筑物将从发布分支开始。当您提交到master分支时,您将不得不再次构建以便从master提交定向工件。

您要么需要对以下内容感到满意:

  • 从提交到发布或从master到发布到两个环境的1个版本
  • 2个单独的版本以发布到单独的环境

答案 1 :(得分:1)

对于您的问题,如果要基于对Build Artifact源中不同分支的提交来自动触发部署到不同阶段,则不可行。

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

enter image description here

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