分支到构建配置?

时间:2018-09-19 22:56:34

标签: azure-devops

我有一个基于build和master分支构建的构建管道。我设置了多个构建配置。开发完成后,就会创建一个发行版,并将其部署到我的开发环境中。我希望该构建使用我的开发构建配置。当我合并到我的master分支时,它将构建,发布并部署到我的QA环境。我希望该版本使用我的发布版本配置。我遇到的问题似乎是构建所有构建配置,但是最后一个问题仍然存在,那就是发布构建配置。当部署到开发中时这是有问题的,因为我的连接字符串指向我的生产数据库。是否有一种方法可以使用单个CI / CD管道进行正确设置,还是应该有两个不同的CI / CD管道,一个用于开发,一个用于生产?

2 个答案:

答案 0 :(得分:1)

我建议使用一个(或两个)构建管道和两个发布管道,因为要基于构建分支使用不同的发布配置是{{1 }}或develop

详细信息如下:

  • 仍然为master分支或develop分支使用当前的CI构建管道(或者您可以更改为使用两个单独的构建管道)。
  • 使用两个发布管道线。对于工件规范,从带有标签的特定分支中选择“最新”。然后分别为两个发布管道选择masterdevelop

    enter image description here

答案 1 :(得分:0)

这也是我需要的,我解决了。

对于构建:

  1. 确保将构建触发器设置为允许“过滤”任何分支
    您想包括在其中。对我来说,这是发展和掌握。
  2. 创建一个PowerShell构建步骤,我的步骤称为“基于分支设置构建配置”。
  3. 使PowerShell为“内联”类型
  4. 在脚本框中,放置以下内容:

    Write-Host ("##vso[task.setvariable variable=BuildConfiguration;]{0}" -f ({Test},{Release})[$env:BUILD_SOURCEBRANCHNAME -eq "master"])
    

    只要将您的转换设置为对构建配置起作用,这些转换将在此构建过程的其余部分中得到正确处理。对我来说,这是一个测试和发布配置,但对您来说,可能会有所不同。

对于发布:

  1. 在工件上设置触发器,以包括您所需要的分支 要包含在此方案中。
  2. 确保在发行版中创建单独的阶段。对我来说, 称为“测试部署”和“产品部署”
  3. 对于每个部署“阶段”,将触发器设置为具有 您要定位的分支的工件文件管理器。

注意:确保每个“阶段”中的部署步骤都针对适当的部署组。您不想将测试环境设置部署到PROD!

在生产阶段,我还添加了一个批准步骤。

希望有帮助。