我使用脚本化的Jenkins Pipeline,并希望定义诸如expr1 AND NOT expr2
之类的标签表达式。
所以我使用了node('expr1 && !expr2'){}
,但是(有时)分配了一个同时具有expr1
和expr2
的节点。
我也尝试使用node('expr1' && '!expr2'){}
,但结果相同。
在脚本管道中说expr1 AND NOT expr2
的正确语法是什么?
答案 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