выражение метки узла в конвейере сценариев Jenkins - PullRequest
0 голосов
/ 28 мая 2019

Я использую сценарий Jenkins Pipeline и хочу определить выражение метки как expr1 AND NOT expr2.

Итак, я использовал node('expr1 && !expr2'){}, но это (иногда) выделяло узел, который имеет и expr1, и expr2.

Я также пытался с node('expr1' && '!expr2'){}, но тот же результат.

Каков правильный синтаксис, чтобы сказать expr1 AND NOT expr2 в сценарии конвейера?

1 Ответ

0 голосов
/ 28 мая 2019

Попробуйте (label1) &&! (Label2)

Кошук подробно описывает улучшения для Дженкинса здесь (старый): 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, оба выражения должны иметь значение true.

a || b - ИЛИ, любое из выражений a или b может быть истинным.

a -> b - оператор "подразумевает", эквивалентный! A || б. Например, если используется выражение «linux -> x64», оно интерпретируется следующим образом: если используется агент Linux, то агент должен быть 64-разрядным.

a <-> b - оператор "если и только если", эквивалентный a && b || ! a &&! b

Также в официальных документах: https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#node-allocate-node

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...