Azure DevOps - 在 Git 子模块中使用 YAML 模板
Azure DevOps - Use YAML templates in a Git Submodule
所以我有 1 个项目的 11 个存储库,它们都是微服务。
我有一个名为 DevOps 的存储库,其中必须在 YAML 构建之间共享的所有内容都使用 Git 子模块共享。
出于某种原因,我似乎无法引用 git 模块中的 yaml 模板。
选项:
当我尝试 运行 通过触发器或手动构建时,出现错误:
File /DevOps/A/Templates/A-test-template.yml not found in
repository
http://A.azuredevops.local/DefaultCollection/A/_git/A
branch refs/heads/master version db2884cc2d188b8e281f78e8b27e4fd74ce77d58.,Unexpected step type:
'StepsTemplateReference'
YAML:
steps:
# Run Unit Tests
- template: DevOps/A/Templates/A-test-template.yml
解决方案:
使用 YAML:
resources:
repositories:
- repository: RepositoryAlias
type: git
name: "ProjectName/RepositoryName"
steps:
- template: DevOps/A/Templates/A-test-template.yml@RepositoryAlias
我认为这行不通,因为必须在实际开始构建之前计算步骤,并且在构建开始后检查子模块。但是,老实说,您应该只使用正确的方法(而不是子模块):
# Repo: Contoso/LinuxProduct
# File: azure-pipelines.yml
resources:
repositories:
- repository: templates
type: github
name: Contoso/BuildTemplates
jobs:
- template: common.yml@templates # Template reference
所以只需将它们放在一个单独的存储库中并引用该存储库。
所以我有 1 个项目的 11 个存储库,它们都是微服务。
我有一个名为 DevOps 的存储库,其中必须在 YAML 构建之间共享的所有内容都使用 Git 子模块共享。
出于某种原因,我似乎无法引用 git 模块中的 yaml 模板。
选项:
当我尝试 运行 通过触发器或手动构建时,出现错误:
File /DevOps/A/Templates/A-test-template.yml not found in repository http://A.azuredevops.local/DefaultCollection/A/_git/A branch refs/heads/master version db2884cc2d188b8e281f78e8b27e4fd74ce77d58.,Unexpected step type: 'StepsTemplateReference'
YAML:
steps:
# Run Unit Tests
- template: DevOps/A/Templates/A-test-template.yml
解决方案:
使用 YAML:
resources:
repositories:
- repository: RepositoryAlias
type: git
name: "ProjectName/RepositoryName"
steps:
- template: DevOps/A/Templates/A-test-template.yml@RepositoryAlias
我认为这行不通,因为必须在实际开始构建之前计算步骤,并且在构建开始后检查子模块。但是,老实说,您应该只使用正确的方法(而不是子模块):
# Repo: Contoso/LinuxProduct
# File: azure-pipelines.yml
resources:
repositories:
- repository: templates
type: github
name: Contoso/BuildTemplates
jobs:
- template: common.yml@templates # Template reference
所以只需将它们放在一个单独的存储库中并引用该存储库。