带有模板的azure devops yaml管道不会签出引用的存储库

时间:2019-05-22 16:00:40

标签: azure-devops azure-pipelines

我正在使用新的Azure DevOps Yaml多阶段管道功能

我有一个要使用模板的Azure DevOps yaml管道文件。我希望管道签出self和另一个存储库。

由于某种原因,自身存储库在运行时已被检出,但是repo:管道没有被检出,因此作业失败(因为它不需要的某些文件依赖项在那里。

这是我模板的摘录:

resources:
  repositories:
  - repository: self
  - repository: pipelines
    name: vstsproject/pipelines
    type: git
    source: pipelines

variables:
  # Container registry service connection established during pipeline creation
  imageRepository: 'vstsprojectweb'
  dockerfilePath: '$(Build.SourcesDirectory)/src/Dockerfile.CI'
  BuildConfiguration: 'Release'
  tag: '$(Build.BuildId)'  

stages:

- stage: 'PRD'
  jobs:
  - template: update-connection-string-db.yml@pipelines
    parameters:
      resourceGroup: 'application-DEV'
      DBSearchString: '###dbservername###'  

我做错了什么?

我已经提到了这个microsoft documentation

2 个答案:

答案 0 :(得分:1)

你不需要在资源(即self)中引用链接的repo,如果它是唯一的repo,那么它默认在jobs(不是部署jobs)中签出,但是如果你有额外的repo ,那么您需要手动检查它们(使用 -checkout: )。

所以就这样做(PS:稍微清理一下,假设 repo 在同一个项目中):

resources:
  repositories:
  - repository: pipelines
    source: pipelines

variables:
  # Container registry service connection established during pipeline creation
  imageRepository: 'vstsprojectweb'
  dockerfilePath: '$(Build.SourcesDirectory)/src/Dockerfile.CI'
  BuildConfiguration: 'Release'
  tag: '$(Build.BuildId)'  

stages:

- stage: 'PRD'
  jobs:
  - checkout: self
  - checkout: pipelines
  - template: update-connection-string-db.yml@pipelines
    parameters:
      resourceGroup: 'application-DEV'
      DBSearchString: '###dbservername###'  

答案 1 :(得分:0)

我最终将所有内容放入相同的仓库中,然后在工作中签出 self

对我有用。

  jobs:
  - job: dbconnectionstring
    displayName: 'db connection string'
    pool: Windows
    steps:
    - checkout: self
    - template: templates/update-connection-string-db.yml