首页 > 解决方案 > Azure DevOps YAML - 每个版本/分支概念的多个管道问题

问题描述

简化我当前的情况是我有两个分支“开发”和“发布”的回购。有azure-pipeline.yml文件和两个管道附加到它(每个分支一个)。在develop我有:

trigger:
 branches:
   include:
     - develop

release是:

trigger:
 branches:
   include:
     - release

当我只提交对其中一个分支的更改时,会触发两个管道 - 为什么?我在这里错过了什么?

我应该排除 oposit 分支(或将来更多分支)还是可能有两个单独的文件azure-pipeline-develop.ymlazure-pipeline-release.yml

每个应用程序版本都有构建的一般概念是什么?例如,当我因为打补丁而仍想构建旧版本时?

哪个选项更容易维护?

标签: azure-pipelinesazure-pipelines-yaml

解决方案


如果我对您的理解正确,您在 Azure DevOps 中有一个azure-pipeline.yml文件和两个管道,每个管道都使用相同的文件。

由于 Azure DevOps 中的两个管道都使用相同的 yaml 文件,因此每个管道都会在每个分支的每次推送时评估所有分支的触发器。

您期望成为“发布”管道的管道不知道它不应该运行“开发”构建。

正如您所提到的,解决此问题的方法之一是创建两个 yaml 文件,每个管道一个,但是我认为有更好的方法。

从同一管道构建所有分支。

Azure DevOps 旨在从同一管道构建多个分支。如果你想构建一个/release分支,你可以在构建分支的同一管道中构建它/develop。此处的文档和教程:https ://docs.microsoft.com/en-us/azure/devops/pipelines/build/ci-build-git?view=azure-devops&tabs=yaml


推荐阅读