Azure devops DevOps YAML build pipeline multi-repo触发器分支未由连续部署触发器或工件筛选器的发布管道标识
我有一个YAML构建管道,它位于repoAzure 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
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
的工件上有一个连续部署触发器:
现在我们来讨论这个问题
每次从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标记