Очередь конвейера Jenkins заполняется, когда все агенты отключены - PullRequest
0 голосов
/ 12 октября 2018

Я использую сценарий конвейера Jenkins, и когда все узлы отключены, сборки продолжают стоять в очереди.Как остановить Jenkins от добавления заданий в очередь, когда все ведомые устройства находятся в автономном режиме?

pipeline {
  triggers {
      pollSCM('H/3 * * * 1-5')

    }
}

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

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

Таким образом, удаление параметров сборки в вашем проекте может решить проблему.

0 голосов
/ 12 октября 2018

Настроена ли доступность вашего агента на «Как можно больше поддерживать этот агент в сети»?

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

def axis = []
for (slave in jenkins.model.Jenkins.instance.getNodes()) {
 if (slave.toComputer().isOnline()) {
    axis += slave.getDisplayName()
 }
}
return axis 

Выше источника сценария: Jenkins: пропустить, если узел отключен

Другие ссылки, которыемогут помочь:

Отслеживание и перезапуск ваших подчиненных узлов - https://wiki.jenkins.io/display/JENKINS/Monitor+and+Restart+Offline+Slaves

Я нашел этот скрипт удобным в некоторых ситуациях: https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/clearBuildQueue.groovy

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