Как вывести список и убить все запущенные задания многоотраслевого конвейера из консоли сценария jenkins - PullRequest
0 голосов
/ 10 января 2020

из-за ошибок конфигурации или других проблем, иногда я просто хочу прервать ВСЕ задания одного многоотраслевого конвейера.

Как я могу сделать это из консоли сценария?

Я могу вызвать doKill () для объекта задания, но как мне перебрать список всех заданий многоотраслевого конвейера и уничтожить все из них?

1 Ответ

0 голосов
/ 10 января 2020

Вот скрипт, который я использую для отмены всех запущенных сборок. Вы можете адаптировать его, чтобы проверить имя сборки, прежде чем отменить ее с помощью какого-либо условия, например job.name ==~ /myjob/

import jenkins.model.*

// remove jobs in queu
def queue = Jenkins.instance.queue
println "Queue contains ${queue.items.length} items"
queue.clear()
println 'Queue cleared.'

// Cancel running builds
def numCancels = 0
for (job in Jenkins.instance.items) {
  if (job.hasProperty('builds')) {
    for (build in job.builds) {
      if (build.isBuilding()) {
            println "Stopping ${build.toString()}"
            build.doStop();
            println "${build.toString()} stopped."
            numCancels++
        }
    }
  }
}
println "${numCancels} Jobs canceled."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...