Jenkins: пропустить, если узел отключен - PullRequest
9 голосов
/ 25 октября 2011

У меня есть задача, которая выполняется на n машинах на основе метки. Если по какой-либо причине некоторые из этих машин находятся в автономном режиме, я не хочу, чтобы Дженкинс поставил их в очередь и подождал, пока они не подключатся к сети. Я бы хотел, чтобы Дженкинс выполнил работу на оставшихся машинах и завершил работу. Есть предложения?

Редактировать 1: Я понял, что работа связана со всеми машинами: Screenshot

Я был вынужден сделать это, потому что мне нужно было, чтобы эта работа выполнялась одновременно на всех машинах. Итак, мой вопрос остается прежним. Если некоторые из этих машин находятся в автономном режиме, я хотел бы пропустить задание на них, а не ждать / очередь.

Редактировать 2: CLI Jenkins имеет команду очистки очереди. Это кажется многообещающим для времени.

Ответы [ 2 ]

8 голосов
/ 27 сентября 2015

Хорошее решение может быть достигнуто с помощью GroovyAxis Plugin и следующего скрипта, который вернет список Axis только онлайн-рабов :

def axis = []
for (slave in hudson.model.Hudson.instance.slaves) {
 if (slave.getComputer().isOnline().toString() == "true") {
   axis += slave.name
 }
}
return axis

ОБНОВЛЕНИЕ: Начиная с Jenkins 2.0, API узла был изменен, поэтому используйте вместо него Node.toComputer (): http://javadoc.jenkins -ci.org / hudson / model / Node.html #на компьютер% 28% 29

def axis = []
for (slave in jenkins.model.Jenkins.instance.getNodes()) {
 if (slave.toComputer().isOnline()) {
    axis += slave.getDisplayName()
 }
}
return axis 
0 голосов
/ 25 октября 2011

Если задача присоединена так, что она выполняется только на определенном узле, она не сможет запускаться на других машинах.

Если это не так, то задача будет выполняться на любом из доступных исполнителей, это поведение по умолчанию.

Таким образом, чтобы проверить, может ли задача выполняться на других узлах, перейдите к заданию> настроить и проверьте следующие параметры.

enter image description here

Если это отключено для задачи, вам нужно будет проверить узлы, что они принимают любые задания, которые можно найти в настройках узла. Это должно читаться как следующее.

enter image description here

Гудлак.

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