Azure Devops 中的多分支管道

Multi branch Pipeline in Azure Devops

我正在尝试在 Azure DevOps 中构建 YAML 发布管道 为此,我创建了多个分支来保存特定于环境的文件

我也创建了 4 个发布管道:

问题:每当我在任何分支中进行任何更改时,所有分支管道都会启动 运行ning。如果我 运行 一个单独的管道,它工作正常。

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
- acc

pool:
  name: 'Agent'

steps:

- task: Kubernetes@1
  displayName: 'Deploy on  K8s Cluster'
  inputs:
    connectionType: 'Azure Resource Manager'
    azureSubscriptionEndpoint: 'vs-aks-sc'
    azureResourceGroup: 'azwe-rg-01'
    kubernetesCluster: 'azwe-aks-01'
    command: 'apply'
    arguments: '-f $(System.DefaultWorkingDirectory)/kubernetes/acc.yaml'

您应该检查管道的 CI 触发器设置,只允许它在您想要的分支上触发

Change CI Trigger

Problem: Whenever I am making any changes in any branch, all the branch pipeline starts running.

如果你只是想运行你修改的分支对应的管道,你需要确保在相应分支中使用YAML文件设置管道并设置正确的分支触发器。

例如,对于 Acc 分支:

我们需要在分支 Feature/TestSample-acc 下创建一个 YAML 文件,在 YAML 文件中使用分支触发器:

trigger: 
  branches:
    include:
      - Feature/TestSample-acc

然后使用现有的 Azure 管道 YAML 文件创建管道:

新管道-> Azure Repos Git(YAML)-> Select 您的存储库-> Select 现有 Azure 管道 YAML 文件:

现在,此管道仅由分支上的修改触发 Feature/TestSample-acc:

您可以为其他分支设置相同的设置,例如

trigger: 
      branches:
        include:
          - Feature/TestSample-dev

此外,如果您不想通过 YAML 文件控制触发器,您可以通过 UI 触发器设置覆盖它:

这个选项默认是关闭的,这样我们就可以直接在YAML文件中控制触发器。

如果启用它,您只需为一个分支添加分支过滤器:

如果我没有正确理解您的问题,请免费告诉我您想要实现的目标。