无法确定触发构建的管道
Can't determine pipeline which triggered a build
我正在使用 Azure DevOps 的多存储库功能,记录在此处:
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops
我在一个存储库中有我的 YAML 文件,管道指向那个 YAML。 YAML 为另一个存储库资源设置了触发器,因此当该存储库更新时,将触发管道:
resources:
repositories:
- repository: MyRepo
endpoint: 'MyRepos'
type: git
name: RepoName
trigger:
- '*'
文档声称 'Build.SourceBranch' 变量将允许我确定 MyRepo 中的哪个分支触发了管道构建:“当对其中一个存储库的更新触发管道时,将根据以下变量设置关于触发存储库
然而,情况似乎并非如此。无论哪个分支触发构建,'Build.SourceBranch' 始终是 'refs/heads/master',大概是因为保存 YAML 的 repo 将 'master' 作为其默认分支。
我也找不到任何设置为触发构建的分支名称的环境变量。那么如何获取触发构建的分支名称呢?如果没有办法,我觉得这个还要加!
问题是:
根据文档,Build.SourceBranch
是根据触发库设置的。但实际上它的值是由YAML文件所在的repo决定的。
我做了以下测试。有两个回购协议,'RepoA' 和 'RepoB'。两个回购协议都有两个分支,'master' 和 'bran'。 YAML 文件位于 'RepoA'
的 'master' 中
提交对 'RepoB' 的 'bran' 的更改。 Build.SourceBranch
的值为 refs/heads/master
。与文档不一致。
提交对 'RepoA' 的 'bran' 的更改。 Build.SourceBranch
的值为 refs/heads/bran
。与文档一致。
提交对 'RepoB' 的 'master' 的更改。 Build.SourceBranch
的值为 refs/heads/master
。与文档一致。
提交对 'RepoA' 的 'master' 的更改。 Build.SourceBranch
的值为 refs/heads/master
。与文档一致。
因此,如果构建是由'RepoA'触发的,Build.SourceBranch
可以成功代表真正的分支。但是,如果构建是由 'RepoB' 触发的,Build.SourceBranch
的值始终是 refs/heads/master
.
我们已将此问题报告给产品组。
我正在使用 Azure DevOps 的多存储库功能,记录在此处:
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops
我在一个存储库中有我的 YAML 文件,管道指向那个 YAML。 YAML 为另一个存储库资源设置了触发器,因此当该存储库更新时,将触发管道:
resources:
repositories:
- repository: MyRepo
endpoint: 'MyRepos'
type: git
name: RepoName
trigger:
- '*'
文档声称 'Build.SourceBranch' 变量将允许我确定 MyRepo 中的哪个分支触发了管道构建:“当对其中一个存储库的更新触发管道时,将根据以下变量设置关于触发存储库
然而,情况似乎并非如此。无论哪个分支触发构建,'Build.SourceBranch' 始终是 'refs/heads/master',大概是因为保存 YAML 的 repo 将 'master' 作为其默认分支。
我也找不到任何设置为触发构建的分支名称的环境变量。那么如何获取触发构建的分支名称呢?如果没有办法,我觉得这个还要加!
问题是:
根据文档,Build.SourceBranch
是根据触发库设置的。但实际上它的值是由YAML文件所在的repo决定的。
我做了以下测试。有两个回购协议,'RepoA' 和 'RepoB'。两个回购协议都有两个分支,'master' 和 'bran'。 YAML 文件位于 'RepoA'
的 'master' 中提交对 'RepoB' 的 'bran' 的更改。
Build.SourceBranch
的值为refs/heads/master
。与文档不一致。提交对 'RepoA' 的 'bran' 的更改。
Build.SourceBranch
的值为refs/heads/bran
。与文档一致。提交对 'RepoB' 的 'master' 的更改。
Build.SourceBranch
的值为refs/heads/master
。与文档一致。提交对 'RepoA' 的 'master' 的更改。
Build.SourceBranch
的值为refs/heads/master
。与文档一致。
因此,如果构建是由'RepoA'触发的,Build.SourceBranch
可以成功代表真正的分支。但是,如果构建是由 'RepoB' 触发的,Build.SourceBranch
的值始终是 refs/heads/master
.
我们已将此问题报告给产品组。