在我的 yaml 管道中,我有多个相互依赖的作业。然而,在其中一项工作中,当我定义条件时,我收到以下错误:
意外的符号:')'。位于表达式中的位置 53:and(not(or(failed('Unittests'), Canceled('Unittests'))), not(canceled('Check_Requirements')))。如需更多帮助,请参阅 https://go.microsoft.com/fwlink/?linkid=842996
这就是我定义显示错误的作业的方式:
- 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”未失败时运行。
有谁知道我在这里做错了什么。我尝试了多种方法来定义此条件,但总是收到“意外符号:')'”错误
根据您的 YAML 示例,我可以重现相同的问题。
我希望作业“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"