2014-09-19 2 views
4

Я использую Дженкинс для тестирования/построить цели, поэтому я создал проект MultiJob с этой конфигурацией:Дженкинс: Совместное использование переменных в MultiJob

  1. Test Работа
  2. Сложение Работа
  3. Установить Работа

MultiJob запускается от мастера Дженкинса, но другие задания запускаются из других узлов. Задание сборки выполняет скрипт оболочки, который создает BUILD_ID. Теперь я хочу, чтобы BUILD_ID передавался как параметр в задание установки. Как я могу это сделать? Мой единственный выбор - использовать файл свойств?

Большого спасибо

ответ

3

Чтобы использовать предложение, которое я собираюсь описать, вам понадобится плагин Parameterized Trigger. Один из способов передачи пользовательского параметра в нисходящее задание состоит в том, чтобы сохранить ключ значения & (key=value) в файле и указать тот же файл, выбрав опцию Parameters from properties file при вызове задания downstream (в этом примере задания B). Смотрите скриншот ниже:

enter image description here

Теперь вы можете получить доступ к переменной по ходу работы «B» с помощью $BUILD_ID. Вы также хотели бы включить опцию Don't trigger if any files are missing.

+4

Я вижу, что это принятый ответ, действительно ли он отвечает на вопрос? У меня точно такая же ситуация, как @Ligio, которая является ** MultiJob **, и вам нужно передать аргумент из _build_ в _deploy_ job. Значение происходит от _build_ job, но _deploy_ job ** не является нисходящей задачей задания _build_. Они выполняются последовательно, но как фазы родительского ** MultiJob **. Более того, они работают на разных подчиненных машинах. Я не вижу, как это решение будет работать. Любые советы будут оценены. [Похоже на это.] (Https://s21.postimg.org/x82wux0qv/multijob.png) – topr

+1

@topr У меня тоже проблема. Любой прогресс или обходное решение по этому поводу? – polavishnu

+0

@polavishnu Да, каждое фазовое задание содержит несколько переменных env, добавленных на многоуровневый уровень. Для случая в вопросе было бы достаточно передать значение BUILD_JOB_BUILD_ID (или BUILD_JOB_BUILD_NUMBER, не помню точно) переменную среды в задание установки. – topr

1

Прежде всего, необходимо добавить в «установить работу» параметр строки под названием «BUILD_ID», а затем, как только ваша сборка работа будет сделана, вы можете «Trigger параметризованные построить на на другом проекте» и добавить параметр следующего билда, являющимся BUILDID =% BuildID%

для получения дополнительной информации о paramterized работе на Дженкинс прочитать по следующей ссылке: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

вам может понадобиться установить плагин для этого. Ссылка выше.

1

Вы можете передать параметр BUILD_ID с помощью Предопределенные параметры в фазе многопользовательской работы.

шаги заключаются в следующем:

  • Перейти настроить страницу, нажав на Настройка ссылку вашего multijob
  • Нажмите на кнопку Дополнительно задания, где требуется передать параметр;
  • Кликните на Добавить параметры, выберите Predefined parameters. Затем создайте имя параметра по своему усмотрению и назначьте ему BUILD_ID;
  • Создайте тот же параметр, включив This build is parameterized option в задании ниже по течению, где вы хотите получить определенный параметр.Тогда вы можете использовать то же самое в своем скрипте,
3

Вопрос задает вопрос о том, как передавать значения между заданиями для проектов MultiJob, а не параметризованным триггером. Параметрированный триггер может не быть хорошим решением, потому что работа по нисходящей линии будет выполняться вне сферы действия родителя MultiJob. Для того, чтобы передавать переменные между MultiJob подразделам рабочих мест,

  1. записи переменных в файле свойств в первой подобласти работы
  2. «Архив артефактов», как после построения действия в первой подобласти работы
  3. Между первый и второй подзадачи, вставьте сборку «Копирование артефактов из другого проекта». Задайте имя проекта имени вашего первого подзадания, а для сборки «Build», созданного текущей сборкой MultiJob. Добавьте файл своей собственности в «Артефакты для копирования».
  4. В вашем втором подзаголовке в разделе «Дополнительно ...», «Добавить параметры -> Параметры из файла свойств» и введите имя файла своего свойства. Теперь у вашей второй фазы будут переменные, прошедшие с вашего первого этапа.
Смежные вопросы