Как запустить параметризованную работу за другой (без параметров) - PullRequest
15 голосов
/ 25 июля 2011

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

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

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

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

Спасибо

1 Ответ

17 голосов
/ 26 июля 2011

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

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

Опция A

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

OptionB

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