如何将buildresources仓库的resources.json传给跨仓库扩展模板deploy-iac.yml
解决方案
你可以通过Azure DevOps内置的预定义变量定位当前buildresources仓库的文件路径,配合调整模板侧的checkout逻辑即可完成参数传递,具体操作如下:
配置调整步骤
- 首先确认路径规则:Azure DevOps流水线中,触发流水线的当前仓库(即你的buildresources仓库)的根目录可通过预定义变量
$(Build.SourcesDirectory)直接引用,存放在根目录的resources.json完整路径为$(Build.SourcesDirectory)/resources.json - 调整你本地pipeline.yml的parameters参数,将csmfile的取值替换为上述路径即可,调整后的完整配置如下:
resources: repositories: - repository: cloud-iac # 该名称用于在checkout步骤中引用此仓库 type: git name: AzureIacPoC/AzureIacPoc ref: refs/heads/features/azure trigger: branches: include: [features/*, master] extends: template: deploy-iac.yml@cloud-iac parameters: resourceGroupName: 'anuj-test-automation' location: 'Canada Central' csmfile: '$(Build.SourcesDirectory)/resources.json' environment: 'sandbox'
- 异常排查:如果按上述配置运行后提示找不到resources.json,说明你引用的deploy-iac.yml模板没有拉取当前buildresources仓库,需要在模板的部署任务前添加
checkout: self步骤,即可拉取当前仓库内容到对应路径。
如果模板中同时配置了拉取多个仓库,可改用$(Build.Repository.LocalPath)/resources.json定位文件,该变量始终指向当前触发仓库的本地根目录,不受多仓库拉取规则影响。
内容的提问来源于stack exchange,提问作者anuj khosla
相关产品推荐
相关产品推荐

