Azure Devops 中的多分支管道

Sat*_*dey 4 azure-devops azure-pipelines multibranch-pipeline azure-devops-pipelines

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

第一张图片

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

第二张图片

问题:每当我在任何分支中进行任何更改时,所有分支管道都会开始运行。如果我运行单独的管道,它工作得很好。

# 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'
Run Code Online (Sandbox Code Playgroud)

第三

部署

Leo*_*SFT 7

问题:每当我在任何分支中进行任何更改时,所有分支管道都会开始运行。

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

例如,对于Acc分支:

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

trigger: 
  branches:
    include:
      - Feature/TestSample-acc
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

在此输入图像描述

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

在此输入图像描述

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

trigger: 
      branches:
        include:
          - Feature/TestSample-dev
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

在此输入图像描述

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