上下文:
我在同一个Azure DevOps Git存储库中有两个YAML生成定义。 YAML文件位于单独的文件夹component1
和component2
上,基于路径过滤生成触发器。这是YAML文件:
文件夹component1
中的第一个文件:
name: 1.0$(Rev:.rr)
trigger:
branches:
include:
- master
- release/*
paths:
include:
- component1
resources:
- repo: self
steps:
- task: CopyFiles@2
displayName: My Copy Step
inputs:
SourceFolder: 'component1'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: Publish Artifacts
文件夹component2
中的第二个文件:
name: 1.0$(Rev:.rr)
trigger:
branches:
include:
- master
- release/*
paths:
include:
- component2
resources:
- repo: self
steps:
- task: CopyFiles@2
displayName: My Copy Step
inputs:
SourceFolder: 'component2'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: Publish Artifacts
我还有一个由两个工件触发的Release管道,并部署了这两个工件中的最新工件。
我的目标:
我要实现的是自动创建发行版时,我希望过滤工件,以便该发行版使用源自“触发”分支的最新工件。
所以,如果我按顺序排列它,它将像这样:
component1
分支的master
中更改文件。component1
构建定义并基于master
分支创建工件。master
分支的最新版本
然后我按以下顺序进行操作:
component2
分支的release
中更改文件。component2
构建定义并基于release
分支创建工件。release
分支的最新版本。对于这两个工件,不是最新序列中的最新序列。问题/问题:
到目前为止,似乎没有选项可以动态选择源分支。我试图在“默认版本”字段中使用$(Release.Artifacts.{Artifact alias}.SourceBranchName)
变量,但这不会触发发布。
我的目标可行吗?如果是的话,怎么办?