我正在使用新的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。
答案 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