Azure devops DevOps YAML build pipeline multi-repo触发器分支未由连续部署触发器或工件筛选器的发布管道标识

Azure devops DevOps YAML build pipeline multi-repo触发器分支未由连续部署触发器或工件筛选器的发布管道标识,azure-devops,azure-pipelines,continuous-deployment,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines,Continuous Deployment,Azure Pipelines Release Pipeline,我有一个YAML构建管道,它位于repoPipelineRepo,分支master 它包含对分支dev上带有触发器的第二次回购AppRepo的引用 在AppRepo/dev上进行提交时,构建将触发并生成工件。生成期间可用的Build.SourceBranch预定义变量当然是dev,因为这是AppRepo上的触发分支。这是根据这里的文件: 文件的具体部分如下: 当对其中一个存储库的更新触发管道时 以下变量是根据触发存储库设置的: Build.Repository.ID Build.Reposi

我有一个YAML构建管道,它位于repo
PipelineRepo
,分支
master

它包含对分支
dev
上带有触发器的第二次回购
AppRepo
的引用

AppRepo/dev
上进行提交时,构建将触发并生成工件。生成期间可用的
Build.SourceBranch
预定义变量当然是
dev
,因为这是
AppRepo
上的触发分支。这是根据这里的文件:

文件的具体部分如下:

当对其中一个存储库的更新触发管道时 以下变量是根据触发存储库设置的:

  • Build.Repository.ID
  • Build.Repository.Name
  • Build.Repository.Provider
  • Build.Repository.Uri
  • Build.SourceBranch
  • Build.SourceBranchName
  • Build.SourceVersion
  • Build.SourceVersionMessage
我在发布管道中使用工件,其中我有一个“Dev”阶段,带有分支
Dev
的工件过滤器:

我在分支
dev
的工件上有一个连续部署触发器:

现在我们来讨论这个问题 每次从
AppRepo/dev
分支生成新的构建工件时,持续部署触发器不会触发,因为它认为工件的构建分支是
PipelineRepo/master
。舞台上的工件过滤器也是如此——我已经通过将连续部署触发器更改为
master
对其进行了测试

注意:您可以在屏幕截图上看到构建名称包含单词“dev”。这是因为我在自定义生成名称中使用了
Build.SourceBranch
var。这证明了伪影肯定是由
AppRepo/dev
触发分支产生的


我如何让DevOps发布管道获取触发分支?根据您的描述,我可以在我的组织中重现类似的问题

当管道由另一个repo分支触发时,它仍然在发布工件中显示主分支

同时,触发器分支在管道中的显示也不一致

例如:

概述:

详细视图:

我建议您可以在中创建一个反馈单

解决方法:

您可以在管道中添加构建标记来区分工件

Yaml样本:

resources:
  repositories:
  - repository: test
    type: git
    name: 123/ARM
    trigger:
    - test

steps:
- checkout: test
- script: echo  "##vso[build.addbuildtag]$(Build.SourceBranch)" 
释放管道:

您可以设置主分支并添加build标记