添加选择分支的条件以在Azure管道中获取yaml模板

Ast*_*rix 6 yaml azure-devops azure-pipelines

我已在名为“DevOps”的单独存储库中添加了 .Net CI CD 管道的 yaml 模板。每个 .Net 服务管道都从“DevOps”调用此 yaml 模板。

在 DevOps 中,我有两个分支 - 一个是主分支,一个是 beta 分支。

.Net 服务管道中源/开发分支的所有触发器都应使用“DevOps”测试分支中的模板。.Net 服务管道中主分支的管道触发器应使用 main 中的模板。-这是要求。

我使用了正则表达式/if条件/语法,使用了when/if,所有这些要么抛出表达式/条件错误,要么只是从main中获取模板。下面是我所做的各种尝试的屏幕截图(较旧的已评论)。

在此输入图像描述

有没有办法在存储库语法中实现条件?

更新:我已经根据 Kotaro 的解决方案更新了管道,如下所示。我希望可以在资源语法中添加变量

在此输入图像描述

但这是我尝试运行管道时得到的结果:

在此输入图像描述

小智 7

这个怎么样?

trigger: none


pr: none

resources:
  repositories:
  - repository: main
    type: git
    ref: main
    name: xxxxx/DevOps

  - repository: beta
    type: git
    ref: beta
    name: xxxxx/DevOps
    
steps:
  - ${{ if ne(variables['Build.SourceBranchName'], 'main') }}:
    - template: aaaaa.yml@beta
  - ${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
    - template: aaaaa.yml@main

Run Code Online (Sandbox Code Playgroud)