关于本文档的“插入”部分:
是否可以引用本地模板作为远程模板中的插入步骤。
例如,我似乎无法使类似的东西起作用:
# File: jobs/build.yml (remotetemplates)
parameters:
preBuild: []
preTest: []
preSign: []
jobs:
- job: Build
pool:
vmImage: 'vs2017-win2016'
steps:
- script: cred-scan
- ${{ parameters.preBuild }}
- task: msbuild@1
- ${{ parameters.preTest }}
- task: vstest@2
- ${{ parameters.preSign }}
- script: sign
# File: .vsts.ci.yml
jobs:
- template: jobs/build.yml@remotetemplates
parameters:
preBuild:
- template: templates/steps/my-local-steps.yml
结果类似于:jobs/build.yml@remotetemplates: File templates/steps/my-local-steps.yml not found in repository <URL of remote repository>
还有其他可以使用的方法吗?
答案 0 :(得分:0)
是否可以引用本地模板作为插入的步骤 远程模板。
很遗憾地说不,你不能。
当您从另一个模板存储库调用一个yml文件时,所有模板文件必须来自一个相同的存储库。由于在另一个存储库中调用的模板存储库的逻辑是使template repository
完全独立,因此仅存储模板并由其他存储库使用。这种设计的意义在于提高称为模板的代码的重用率。另一个优点是调节模板。
因此,当您在YAML中使用模板存储库时,模板只能来自此模板存储库。
还有其他可以使用的方法吗?
有两种方法。
templates/steps/my-local-steps.yml
文件存储在模板中
资料库。然后,不需要添加其他代码。只是简单的脚本是
好的。如果是这种情况,则您的.vsts.ci.yml
文件中有一些错误。
resources:
repositories:
- repository: templates
type: git
name: {projectname}/{repos name}
jobs:
- template: jobs/build.yml@templates
parameters:
preBuild:
- template: {local steps which store at your template repository}.yml
有关模板参考格式,请参考此文档:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#using-other-repositories
templates/steps/my-local-steps.yml
转换为脚本,添加
插入 YAML的纯脚本。希望这可以为您提供帮助。