Azure DevOps多仓库流水线:仅检出触发流水线的仓库
实现Azure DevOps流水线仅检出触发仓库
你可以通过Azure DevOps的预定义变量resources.triggeringAlias结合模板条件判断来实现需求,具体配置如下:
完整流水线示例
resources: repositories: - repository: r1 type: git name: XXX/r1 trigger: branches: include: - f/* - repository: r2 type: git name: XXX/r2 trigger: branches: include: - f/* steps: - checkout: none # 禁用默认的自动检出行为 # 根据触发流水线的仓库别名,仅检出对应仓库 - ${{ if eq(resources.triggeringAlias, 'r1') }}: - checkout: r1 - ${{ if eq(resources.triggeringAlias, 'r2') }}: - checkout: r2
原理说明
resources.triggeringAlias是Azure DevOps的预定义变量,会记录触发当前流水线运行的资源别名(即你在resources.repositories里定义的r1或r2)。- 先通过
checkout: none禁用默认检出逻辑,避免自动检出所有关联仓库。 - 利用模板条件表达式
${{ if ... }}判断触发别名,只执行对应仓库的检出步骤。
如果是手动触发流水线,resources.triggeringAlias会为空,你可以根据需要添加默认检出逻辑,比如手动指定要检出的仓库。
内容的提问来源于stack exchange,提问作者user3579222
相关产品推荐
相关产品推荐

