Выражение метки узла в Jenkins Scripted Pipeline

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

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

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

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

"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
1
0
1 871
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте (метка1) && !(метка2)

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, оба выражения должны быть истинными.

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

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

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

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

Мы используем этот формат для некоторых заданий: node ("Label1 && !Label2") Если вы перейдете к генератору сниппетов (hostjenkins/pipeline-syntax), выберите шаг Node: Allocate Node там есть некоторая документация + вы можете сгенерировать шаг сценария конвейера.

Unforgettable631 28.05.2019 13:37

Спасибо, но я совершил глупую ошибку: выражение моей метки было правильным, но я проверил свой Jenkinsfile из неправильной ветки...

Munchkin 03.07.2019 15:25

Другие вопросы по теме