Как запустить параметризованное задание за другим (без параметров)

У меня есть работа в Jenkins, у которой есть 2 параметра. Я хочу запустить другой план, который не имеет параметров и из этого плана, запустив существующий план столько раз, сколько потребуется.

Новый план должен планироваться для запуска каждые 15 минут (это будет сделано с помощью планировщика Jenkins), код этого плана будет:

  • подключиться к db
  • получить требуемый набор записей
  • начать цикл записи набора записей
    • сохранить пару ключ/значение (параметры для существующего задания)
  • конец цикла

Как только это будет сделано, мне нужно запустить существующее задание с каждой сохраненной парой ключ/значение. Могу ли я сделать это, как это из коробки с Дженкинсом (с использованием 1.406), или мне нужно позвонить на существующее задание удаленно? Я не вижу, как передавать параметры из одного плана в другой при использовании опции "Создать другие проекты" в разделе "Действия после сборки" (конфигурация плана)

Спасибо

Ответ 1

Существует Parameterized Trigger Plugin, который после установки позволяет запускать параметризованную сборку после завершения одной сборки.

Самый простой способ выполнить то, что вы хотите, - это установить этот плагин и построить проект один раз с помощью списка ключей/значений, с которым вы хотите построить. Если по какой-то причине вам нужно выполнить сборку несколько раз после завершения первого задания, вы можете использовать удаленный API для запуска сборки из своего первого проекта. Таким образом, у вас есть два варианта:

Вариант A

  • Project1 выполняет, создает файл с парами ключ/значение.
  • Project1 завершен, настроен на выполнение Project2 с параметрами (с использованием плагина с параметризированным триггером)
  • Project2 проходит через пары ключ/значение, делая все, что вам нужно сделать для каждого

Вариант B

  • Выполняется Project1. Для каждой пары "ключ/значение" он обращается к следующему URL-адресу http://server/job/<Project2 Name>/buildWithParameters?PARAM1=Value1&PARAM2=Value2 (вам нужно будет заменить свое фактическое имя проекта и имена/значения параметров)
  • Project2 принимает эти параметры и строит как обычно, используя значения параметров везде, где им нужно