繁体   English   中英

Azure DevOps 检出仅触发存储库

[英]Azure DevOps checkout only triggered repository

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

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

但是每次,这只会检出源存储库。

当从 repo1 触发管道时,我尝试检出 repo1,当它从 repo2 触发时,我尝试检出 repo2。

我不想在管道文件中不断更改结帐存储库的名称。 还有另一种方法可以让结帐任务自动选择触发的存储库吗?

检查多个 repos 涉及调用checkout的不同方式:

  1. 使用以下命令查看触发回购: checkout: self
  2. 查看其他回购协议: checkout: <reponame>

使用结帐的更多信息和选项请参阅: https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#specify-multiple-repositories

编辑

假设您的触发回购是 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM