2015-12-03 8 views
3

Я пытаюсь создать серию заданий в Jenkins для создания и развертывания приложения с использованием плагина Promoting. В настоящее время мы используем Git как наш SCM, и мы используем Git Включите, чтобы помочь с сборками. Эта конкретная сборка - сборка Maven. Шаги, которые я пытаюсь реализовать, следующие:Jenkins с использованием Git Plugin, не заполняющего GIT_COMMIT для продвинутой сборки

  • Выполнение задания сборки, выполнения модульного теста и создания артефактов. Это работа срабатывает при фиксации кода.
  • Для создания этого кода в нашей тестовой среде у задания построения есть пункт продвижения по службе . Точка продвижения имеет параметр утверждения для передачи среды, которая будет использоваться для развертывания .
  • Точка продвижения запускает работу, давайте назовем его интеграции задания, который только запускает несколько заданий развертывания, некоторые из этих развертываний рабочих мест требуют, чтобы получить от Git того же код, который был используется для создания артефактов. Поскольку код, возможно, изменился с , когда этот конкретный выпуск был построен до момента, когда мы хотим , чтобы выполнить развертывание, я пытаюсь использовать переменную GIT_COMMIT для распространения числа фиксации, используемого для создания артефактов.
  • В задании интеграции на этапе сборки, который запускает конкретное задание на развертывание , я не добавляю никаких параметров вообще, а не Git, , а не «текущие сборки».

Проблема заключается в том, что задание на развертывание никогда не получает значение GIT_COMMIT. Поэтому он всегда терпит неудачу, пытаясь извлечь код из Git.

  • На работе сборки, в процессе продвижения, кроме параметра утверждения для выбора среды, в действии запуская работу интеграции Я добавил «Текущие параметры сборки» и «Сквозная Git Зафиксируйте это было построенных "параметров.
  • В задании сборки после запуска я могу видеть переменные среды для задания, а переменная GIT_COMMIT имеет правильное значение для фиксации.
  • В задании интеграции я не вижу GIT_COMMIT в списке переменных окружения.
  • В задании на развертывание я не вижу GIT_COMMIT в списке переменных среды.

До сих пор я пытался:

  • Добавить «Текущие параметры сборки» и «Сквозная Git Commit, который был построен» с триггером для задания развертывания
  • Добавление другой переменной в Создайте задание и присвойте ему значение $ GIT_COMMIT как значение
  • Добавление другой переменной в качестве параметра одобрения для продвижения и присвоение значения $ GIT_COMMIT
  • Добавление другой переменной в задание триггера для интеграции и ее предоставление $ GIT_COMMIT value
  • Добавление параметра в задание развертывания и по умолчанию его значение $ GIT_COMMIT, но переопределение указанного параметра со значением триггера.

До сих пор не повезло.

Я должен добавить, что все другие параметры и переменные распространяются должным образом, среда развертывания одна, у меня одна для управления версиями, BUILD_NUMBER и т. Д. Все распространяется хорошо, за исключением GIT_COMMIT.

У меня также есть аналогичная настройка для другого приложения, это приложение Grails, и GIT_COMMIT там прекрасно работает.

Эти версии, которые я использую:

  • Дженкинс 1,632
  • Git Plugin 2.4.0
  • Повышен Сборки (Simple) 1,9
  • способствовало строит Plugin 2.24
  • Java Open JDK 1.7.0_75

Любые идеи более чем приветствуются , Спасибо.

ответ

4

Мне удалось получить обходное решение, но я не нашел решения для оригинальной проблемы. Первоначальная проблема заключается в том, что GIT_COMMIT не распространяется на задание на развертывание, и я не смог выполнить эту работу. Вместо этого, чтобы мой процесс работал, я сделал следующее:

В задании сборки в процессе продвижения при запуске задания интеграции я добавил «Предопределенные параметры» со значением: BUILD_COMMIT = $ {GIT_COMMIT}.

В задании интеграции при запуске задания развертывания я добавляю параметр «Текущие параметры сборки».

В задании развертывания, в конфигурации git, в поле «Филиалы для сборки» я использую $ {BUILD_COMMIT}.

Это запускает все правильно, и задание развертывания получает правильный номер фиксации при развертывании.

Надеюсь, это поможет.