Stage 模板的条件在 Azure yml 管道中不起作用

Conditions on Stage template not working in Azure yml pipeline

我有下面的主要 YML 管道

下面是正在调用的模板。

尝试 运行 主管道显示以下错误

看来你的条件不符合。所以 envname 不是 sbx 因此你的模板被跳过,你不能 运行 管道没有任何阶段。请确保无论条件结果如何,您始终至少有一个阶段,或者诸如非 sbx 环境的空阶段。

同意 Krzysztof Madej 的观点。

在阶段级别添加条件时,需要确保始终至少有一个阶段满足条件。

除了添加空阶段外,您还可以在 Yaml 示例中添加否定条件:

例如:

stages:
- ${{if eq(variables['envName'],'sbx')}}:
  - template: test.yml
    parameters:
     buildSteps: test
- ${{if ne(variables['envName'],'sbx')}}:
  - stage: Test
    jobs:
    - job: TestJob
      steps:
        - script: echo Test
          displayName: 'Test Stage'
    

在这种情况下,如果 envName = sbx,它将 运行 模板,或者 运行 另一个阶段。