Внедрить конфигурацию в несколько заданий Jenkins через DSL

У меня есть несколько проектов maven в Jenkins, и мне нужен механизм, в котором я могу сразу ввести часть конфигурации во все из них.

или например, если я решу изменить файл logRotation.

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

mavenJob('EXAMPLE_TEST1') {
    publishers {
         textFinder(/There are test failures/, '', false, false, true)
   }
}

Вышеприведенное работает и вводит часть конфигурации для плагина textFinder в проект maven.

Как мне добиться того же для EXAMPLE_TEST2, 3, 4, 5, 6 и т. д.

Ценю любую помощь


person Brian Mitchell    schedule 19.01.2017    source источник


Ответы (1)


Я решил пойти немного дальше и создать в Jenkins массив всех заданий.

import hudson.model.*

allTests(Hudson.instance.items)


def allTests(items){
def list = []

for (item in items) {
  def name = item.getName()

  if (name.contains("API")){
  } else {
    list << item.getName()
 }
}

list.each { job ->  

mavenJob("${job}")
{
publishers {
    textFinder(/There are test failures/, '', false, false, true)
   }
  }
 }
}

Извините за вышеуказанный формат

Таким образом, теперь он захватит каждое задание в Jenkins, которое не содержит текстовый API, и добавит его в массив и внедрит требуемую конфигурацию.

person Brian Mitchell    schedule 19.01.2017
comment
Хммм, вопрос с самостоятельным ответом, вероятно, должен иметь только один самостоятельный ответ. Вы можете отредактировать исходный ответ, добавив эту дополнительную информацию, а затем удалить этот дополнительный ответ. Пожалуйста. - person Jonathan Leffler; 19.01.2017
comment
Извините, Готово Джонатан - person Brian Mitchell; 20.01.2017
comment
Я не думаю, что это правильный путь (поправьте меня, если я ошибаюсь, пожалуйста!), потому что Дженкинс не отслеживает эти задания. это несколько связано с моим вопросом: stackoverflow.com/questions/51144018/. Я пытаюсь делать то, что делаете вы, но я хочу, чтобы jenkins удалял переименованные/неиспользуемые задания, и такой цикл, похоже, не работает. Или, может быть, я просто что-то упускаю? - person red888; 03.07.2018