本地 Azure DevOps Server 2019 是否支持来自另一个存储库的 yaml 模板?

Does Azure DevOps Server 2019 on-prem support yaml templates from another repository?

我将开始与我的其他问题完全相同() - According to the official documentation at https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops-2019 Azure DevOps Server 2019 本地支持一切。

特别是从另一个存储库引用 yaml 模板。但是,尝试在实践中使用它会失败:

/azure-pipelines-common.yml: File /prepare-sonar-qube.yml not found in repository http://tdc1tfsapp01:8080/tfs/DefaultCollection/DFDevOps/_git/logs2db branch refs/heads/master version 0ba42f59f36e74ad4fe39e59e4e8a3a56a6e9ff0.

这是我的 yaml 模板:

trigger:
- master

name: 1.0.$(Date:yy)$(DayOfYear)$(Rev:.r)

resources:
  repositories:
  - repository: templates
    type: git
    name: NewProductTemplate
    ref: refs/heads/shelve/yaml-templates

jobs:
- job: Build
  pool:
    demands: DotNetFramework
  workspace:
    clean: all
  variables:
  - template: variables.yml@templates
  steps:
  - template: azure-pipelines-common.yml
  - template: publish-nuget.yml@templates
  - template: publish-symbols.yml@templates
  - template: publish-code-coverage.yml@templates
  - template: promote-nuget.yml@templates

我是不是做错了什么,或者这是另一个误导文档的案例?

参见语句 - template: azure-pipelines-common.yml,这意味着您正在引用 当前 存储库中的模板。错误消息仅表示 azure-pipelines-common.yml 引用的 prepare-sonar-qube.ymlcurrent 存储库的 master 分支中丢失(logs2db?)。

因此,如果您在 azure-pipelines-common.yml 中像这样定义对 prepare-sonar-qube.yml 的引用:

steps:
- template: prepare-sonar-qube.yml

您应该确保 prepare-sonar-qube.yml 存在于它当前的存储库 (logs2db) 而不是另一个存储库 (NewProductTemplate)。或者出现这样的错误是预期的行为: