Введение
В настоящее время мы запускаем мастер Jenkins с несколькими подчиненными узлами, каждый из которых в настоящее время помечен одной меткой (например, linux
, windows
, ...)
В наших скриптах сценариев-конвейеров (которые определены в общей библиотеке ), в настоящее время мы используем следующие фрагменты:
node ("linux") {
// do something on a linux node
}
или
node ("windows") {
// do something on a windows node
}
Тем не менее, по мере роста нашей среды тестирования у нас появилось несколько различных сред Linux, некоторые из которых имеют или не имеют определенных возможностей (например, некоторые могут запускать службу X
, а некоторые - нет).
Я бы хотел пометить своих рабов несколькими ярлыками с указанием их возможностей, например:
- Раб 1:
linux
, serviceX
, serviceY
- Раб 2:
linux
, serviceX
, serviceZ
Если мне сейчас нужен подчиненный Linux, который может запускать службу X
, я хотел бы сделать следующее ( в соответствии с этим ):
node ("linux" && "serviceX") {
// do something on a linux node that is able to run service X
}
Тем не менее, это не удалось.
Иногда выбирается и раб windows
, чего я не хочу достичь.
Вопрос: Как определить несколько меток (и комбинированных) на основе того, какой узел выбран в сценарии конвейерного сценария Jenkins?