Azure Pipelines 中的作业条件

问题描述 投票:0回答:1

在我的 yaml 管道中,我有多个相互依赖的作业。然而,在其中一项工作中,当我定义条件时,我收到以下错误:

意外的符号:')'。位于表达式中的位置 53:and(not(or(failed('Unittests'), Canceled('Unittests'))), not(canceled('Check_Requirements')))。如需更多帮助,请参阅 https://go.microsoft.com/fwlink/?linkid=842996 Job Condition Error

这就是我定义显示错误的作业的方式:

  - job: Security_Check
displayName: "Security Check"
dependsOn:
  - Check_Requirements
  - Unittests
condition: and(not(or(failed('Unittests'), canceled('Unittests'))), not(canceled('Check_Requirements')))
pool:
  name: "Basic_Pool_Ubuntu"
variables:
  - name: foundVuls
    value: $[ dependencies.Check_Requirements.outputs['CheckVuls.foundVul'] ]
  - name: Artifact.Folder
    value: "artifacts"

我希望作业“Unittests”未失败或取消并且作业“Check_Requirement”未失败时运行。

有谁知道我在这里做错了什么。我尝试了多种方法来定义此条件,但总是收到“意外符号:')'”错误

azure-devops azure-pipelines azure-pipelines-yaml
1个回答
0
投票

根据您的 YAML 示例,我可以重现相同的问题。

enter image description here

我希望作业“Unittests”未失败或取消并且作业“Check_Requirement”未失败时运行。

为了满足您的要求,您可以使用以下条件:

condition: and(notIn(dependencies.Unittests.result, 'failed', 'canceled'), ne(dependencies.Check_Requirements.result, 'canceled'))

YAML 示例:

- job: Security_Check
  displayName: "Security Check"
  dependsOn:
    - Check_Requirements
    - Unittests
  condition: and(notIn(dependencies.Unittests.result, 'failed', 'canceled'), ne(dependencies.Check_Requirements.result, 'canceled'))
  pool:
    name: "Basic_Pool_Ubuntu"
  variables:
    - name: foundVuls
      value: $[ dependencies.Check_Requirements.outputs['CheckVuls.foundVul'] ]
    - name: Artifact.Folder
      value: "artifacts"
© www.soinside.com 2019 - 2024. All rights reserved.