【发布时间】:2021-10-12 23:37:23
【问题描述】:
我正在尝试使用来自多个存储库的多个作业/步骤模板。我的 YAML 管道中有以下依赖项:
pipeline.yaml@RepoA -> template1.yaml@RepoB -> template2.yaml@RepoC
Azure DevOps 似乎只支持仅一级深度的引用模板。
这是我正在使用的示例代码:
# pipeline.yaml@RepoA
resources:
repositories:
- repository: RepoB
type: Git
name: RepoB
extends:
template: Build/YAML/Jobs/test-sdk.yaml@RepoB
# Build/YAML/Jobs/test-sdk.yaml@RepoB
resources:
repositories:
- repository: RepoC
type: Git
name: RepoC
jobs:
- job: AnotherJob
steps:
- template: Common/Steps/Initialize/ShowPackageVariables_01.yaml@RepoC
上述代码示例在解析模板时抛出错误:
/Build/YAML/Jobs/test-sdk.yaml@RepoB(第 23 行,第 15 列):其他存储库中的模板在引用另一个模板时可能不会指定存储库源。不允许使用模板引用“Common/Steps/Initialize/ShowPackageVariables_01.yaml@RepoC”。
任何如何解决此问题的想法将不胜感激。
【问题讨论】:
-
我们设置了一个单独的 repo BuildTemplates,其中存储了多个 repos 中使用的所有模板。到目前为止,我没有尝试在那里使用引用其他模板的模板,但这应该更容易。 (哪些存储库在管道的构建选项卡中被命名为源?所有引用的存储库都需要在此处提及 - 并且可能缺少传递引用。)
标签: azure-devops azure-pipelines-yaml