Ожидаемое поведение плагина Jenkin's Node Label - не работает на всех узлах - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь использовать подключаемый модуль Node label плагина, добавив параметр Label и выбрав Выполнить на всех узлах, соответствующих метке в конвейерном задании. Но это выполняется только на одном из узлов, даже если узлы обнаруживаются с помощью Показать узлы на странице сборки.

Я также пытался использовать Все узлы для фабрики этикеток опция, которую предоставляет тот же плагин, но она не срабатывает, когда мне требуется более одной метки в заданиях, как описано здесь: https://issues.jenkins-ci.org/browse/JENKINS-59431 (включая последний комментарий)

Через много часов потратив на Google, я пришел к выводу, что когда я использую Label с , запускается на всех , все узлы будут работать одновременно, единственное отличие от других примеров, которые я видел в Интернете, это тот факт, что они не являются конвейерными заданиями, поэтому выбор параллельных заданий возможен по сравнению с параметром Не разрешать одновременные сборки в конвейере (который не выбран)

1 Ответ

0 голосов
/ 17 февраля 2020

В случае, если у кого-то возникла эта проблема, я решил ответить на этот вопрос.

Я сделал триггерное задание конвейером, в котором я строю последующее задание с 2 параметрами внутри al oop через все узлы с label:

def nodeArray = nodesByLabel label:"${params.labeled}", offline: false
for(item in nodeArray) {
    build job:"DownstreamJob", parameters:[
            [$class: 'LabelParameterValue', name: 'node', label: "${item}"],
            string(name:"nodeToRunIn", value:"${item}")
        ], propagate: false, wait:false
}

И в DownstreamJob я начинаю с:

node (params.nodeToRunIn) {

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

...