Azure DevOps仅 checkout 触发的存储库

pcww981p  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(105)

我只想检查触发管道的存储库。

resources:
  repositories:
  - repository: repo2
    type: git
    name: branching/repo2
    ref: dev
    trigger:
    - dev
  
  - repository: repo1
    type: git
    name: branching/repo1
    ref: main
    trigger:
    - main
  
pool:
  vmImage: ubuntu-latest

steps:
- script: echo "$(Build.Repository.Name)"
- ${{ if in(variables['Build.Repository.Name'], 'repo1') }}:
  - checkout: repo1
- ${{ if in(variables['Build.Repository.Name'], 'repo2') }}:
  - checkout: repo2

但每次只 checkout 源代码库。
当管道从repo1触发时,我尝试 checkout repo1,当管道从repo2触发时,我尝试 checkout repo2。
我不想在管道文件中不断更改 checkout 存储库的名称。有没有其他方法可以让 checkout 任务自动选择触发的存储库?

of1yzvn4

of1yzvn41#

检出多个回购涉及调用checkout的不同方式:
1.查看触发回购协议:checkout: self
1.查看其他回购协议:checkout: <reponame>
有关使用 checkout 的详细信息和选项,请参阅:www.example.comhttps://learn.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#specify-multiple-repositories

编辑

假设您的触发器repo是repo1或repo2,您的YAML示例如下所示:

resources:
  repositories:
  - repository: repo2
    type: git
    name: branching/repo2
    ref: dev
    trigger:
    - dev
  
  - repository: repo1
    type: git
    name: branching/repo1
    ref: main
    trigger:
    - main
  
pool:
  vmImage: ubuntu-latest

steps:
- script: echo "Triggered repo: $(Build.Repository.Name)"
- checkout: self
- ${{ if in(variables['Build.Repository.Name'], 'repo1') }}:
  - checkout: repo2
- ${{ if in(variables['Build.Repository.Name'], 'repo2') }}:
  - checkout: repo1

相关问题