如何在Azure DevOps管道中为succeeded表达式函数传递作业名称参数?
解决Azure DevOps YAML管道中
succeeded()函数引用作业名称的问题 你遇到的报错是因为在succeeded()函数里直接写作业名first时,Azure DevOps会把它当成未定义的变量,而非作业名称的字面量。正确写法是把作业名称用单引号括起来,作为字符串参数传入。
修改后的第三个作业条件如下:
condition: and( succeeded('first'), in(dependencies.second.result, 'Succeeded', 'Skipped', 'SucceededWithIssues') )
原因说明
Azure DevOps的表达式语法中,裸写的标识符会被解析为变量引用,而succeeded()函数需要接收的是作业名称的字符串值。用单引号包裹first后,表达式引擎才会将其识别为指定作业的名称,从而正确判断该作业是否成功完成。
这样修改后,第三个作业就能根据first作业是否成功,以及second作业是否处于成功/跳过/成功但有问题的状态来决定是否运行,写法比直接判断dependencies.first.result更简洁。
内容的提问来源于stack exchange,提问作者dumbchemistry
相关产品推荐
相关产品推荐

