如何在不同的Azure DevOps团队项目中重用yaml模板?

7

我正在创建一个集成流水线,应该执行依赖项目的构建流水线(作为验证构建)。所有这些项目都在Azure DevOps中以自己的团队项目托管。为了调用相应的流水线,我想使用repository资源。

根据这里这里的文档,应该可以从不同的存储库执行YAML模板。示例展示了如何针对托管在GitHub上的存储库使用repository资源,但是如何连接到托管在Azure Repos上的不同团队项目并不是非常清楚。当它被托管在同一团队项目中时,可以按照这个答案中所述进行操作。

我尝试了这个:

resources:
  repositories:
  - repository: MyRepoAlias
    type: git
    name: MyRepo
    ref: 'refs/heads/master'

    # Adding/omitting an endpoint doesn't matter
    endpoint: 'MyRepo Service Connection'

pool:
  vmImage: 'windows-2019'

steps:
  # Calling template on the reference repository
  - template: '.\Templates\RunBuild.yml@MyRepoAlias'

记录一下,参考存储库存在同一 AzD 组织中。如果我将'endpoint'属性添加到端点中也没有关系。在这种情况下,我使用基于令牌的身份验证连接到了一个名为“Azure Repos/Team Foundation Server”的服务连接,并使用完全访问 PAT。

问题:

  • 有人知道如何从 YAML 中引用不同团队项目中托管的 Azure Repos Git 存储库吗?
  • 在 AzD 中是否有其他连锁管道的替代方法?
1个回答

8
管道支持两种类型的存储库,即 git 和 github。git 指的是 Azure Repos Git 存储库。如果您选择 git 作为类型,则名称指的是同一项目中的另一个存储库。例如,otherRepo。要引用同一组织内另一个项目中的存储库,请使用该项目名称作为前缀。例如,OtherProject/otherRepo。
  - repository: MyRepoAlias
    type: git
    name: MyProject\MyRepo
    ref: 'refs/heads/master'

如果它们在同一Azure DevOps组织下,您就不需要端点和服务连接。

https://learn.microsoft.com/zh-cn/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#resources


2
文档中确实提到了,我完全错过了那句话。感谢您指出。 - Herman Cordes
理论上来说,我应该能够访问组织中所有项目的文件,这是怎么实现的呢?是哪个服务连接授权了我访问不同项目中存储库的代码库呢? - undefined
嘿,抱歉,我不是100%确定,但我猜应该是管道身份,他们在身份中有类似的东西。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接