Дженкинс, использующий подключаемый модуль Git, не заполняет GIT_COMMIT для продвинутой сборки

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

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

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

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

Пока я пробовал:

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

Пока не повезло.

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

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

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

  • Дженкинс 1,632
  • Плагин Git 2.4.0
  • Продвинутые сборки (простые) 1.9
  • плагин продвигаемых сборок 2.24
  • Java Open JDK 1.7.0_75

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


person Jorge Varona    schedule 03.12.2015    source источник


Ответы (1)


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

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

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

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

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

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

person Jorge Varona    schedule 08.12.2015