Jenkins脚本化管道中的节点标签表达式

时间:2019-05-28 08:30:31

标签: jenkins jenkins-pipeline

我使用脚本化的Jenkins Pipeline,并希望定义诸如expr1 AND NOT expr2之类的标签表达式。

所以我使用了node('expr1 && !expr2'){},但是(有时)分配了一个同时具有expr1expr2的节点。

我也尝试使用node('expr1' && '!expr2'){},但结果相同。

在脚本管道中说expr1 AND NOT expr2的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

尝试(label1)&&!(label2)

Koshuke在这里(旧)详细介绍了对Jenkins的标签改进: https://jenkins.io/blog/2010/09/02/recent-label-and-matrix-project-improvement/

但最好在这里进行总结: https://kb.novaordis.com/index.php/Jenkins_Job_Label_Expression

操作员

以优先级降序指定:

(表达式)-定义表达式的关联性。

!表达式-求反。

a && b-AND,两个表达式都必须为真。

a || b-或,表达式a或b都可以为真。

a-> b-“隐含”运算符,等效于!a || b。例如,如果使用“ linux-> x64”表达式,则其解释如下:如果使用Linux代理,则该代理必须为64位。

a <-> b-“当且仅当”运算符,等效于a && b || !a &&!b

此外,在官方文档中: https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#node-allocate-node