Azure DevOps:引用模板时无法访问模板仓库问题求助
问题分析
每个Pipeline作业都是独立的执行单元,作业之间的工作目录完全隔离。你在Checkout作业里检出的两个仓库,仅对该作业生效;后续Check作业默认只会检出当前code仓库(self),因此看不到devops仓库。而直接在模板里添加checkout: devops会触发默认的单仓库检出逻辑,清空工作目录后只拉取devops仓库,自然会覆盖code仓库。
解决方案
以下两种配置方式都能解决问题,可根据实际需求选择:
方法1:在模板作业中手动配置多仓库检出
修改模板内的Check作业,先禁用默认检出,再手动同时拉取两个仓库:
jobs: - job: Check pool: vmImage: 'ubuntu-latest' steps: - checkout: none # 禁用默认自动检出逻辑 - checkout: self # 检出code仓库 - checkout: devops # 检出devops仓库 - script: | tree $(Agent.WorkFolder) # 此时可看到两个仓库
方法2:全局配置默认检出所有资源仓库
如果所有作业都需要用到这两个仓库,可在主管道顶部全局配置自动检出所有资源仓库:
resources: repositories: - repository: devops type: git name: ProjectB/devops ref: refs/tags/latest # 全局配置:禁用默认单仓库检出,设置自动检出所有关联仓库 checkout: none stages: - stage: Pipeline jobs: - job: Checkout pool: vmImage: 'ubuntu-latest' steps: - checkout: self - checkout: devops - script: | tree $(Agent.WorkFolder) - template: templates/pipeline.yaml@devops
配置后,模板里的Check作业会自动检出两个仓库,无需额外添加检出步骤。
内容的提问来源于stack exchange,提问作者mikik
相关产品推荐
相关产品推荐

