Проблема с параметризацией сборок при внесении изменений в POM - PullRequest
0 голосов
/ 31 мая 2019

Мы работаем над приложением mule, и недавно нам дали указание следовать модели ветвления и развития PURE Scrum i.e.git-flow.

Ниже приведены шаги, которые мы должны выполнить: 1. Для каждой задачи разработки (с назначенным идентификатором JIRA, например: JIRA-1234) нам необходимо создать отдельную ветвь функций, названную с помощью идентификатора задачи JIRA.

  1. После того, как разработка завершена и протестирована в локальной системе, нам нужно перенести нашу ветвь функций в удаленный репозиторий.

  2. Задание компоновки Jenkins будет опрашивать каждую ветвь объекта и собирает ее, если будет обнаружено какое-либо событие push. После развертывания версия артефакта будет сохранена в Nexus.

  3. QA развернет соответствующую ветвь функций в среде TEST, проведет автоматизацию / ручное тестирование. Если тестирование в порядке, ветвь функций будет объединена для разработки.

  4. В конце спринта мы создадим ветку RELEASE из ветви разработки (которая содержит только разработки TESTED OK для текущего спринта)

У меня проблема с реализацией этих 100% (конечно, я немного оптимистичен):

  1. Если QA необходимо развернуть каждую ветвь функций в среде TEST с помощью задания Jenkins, то в Nexus уже должен был быть сохранен артефакт с уникальным именем (скажем, 4.1.0-JIRA-1234-SNAPSHOT). Для этого мне нужно изменить файл POM.xml с помощью 4.1.0 $ {JIRA_ID} -SNAPSHOT и передать параметр JIRA_ID из команды сборки maven. Это возможно, но при использовании этого файла POM.xml мы столкнемся с проблемами при создании RELEASE (потому что мы используем MVN JGITFLOW: RELEASE-START / MVN JGITFLOW: RELEASE-FINISH)

  2. Мы можем передать эту ответственность разработчику - когда они создают новую ветвь функций для идентификатора JIRA, они вручную изменяют версию в POM.xml как 4.1.0-JIRA-1234-SNAPSHOT. Это создаст артефакт в Nexus после сборки компонента, и QA сможет развернуть его в TEST и завершить тестирование. При объединении возникает проблема, когда из-за перекрывающегося значения может конфликтовать больше ветвей элементов с файлом POM.xml.

Может кто-нибудь предложить мне лучший способ справиться с такой ситуацией и правильно выполнить процесс GIT-FLOW?

1 Ответ

0 голосов
/ 23 июня 2019

Существует решение этой проблемы - добавить скрипт в задания ветки функции сборки.Это будет читать только имя ветви объекта и добавлять к имени артефакта.

Пример: Имя ветви компонента - версия артефакта POM JIRAID-1234 - 1.1.0-SNAPSHOT

В результате задания по сборке Jenkins будет наконец создан артефакт в нексусе с именем - 1.1.0-JIRAID-1234-SNAPSHOT

ЭТО ДЕЛАЕТ ЛЕГКО, ЧТОБЫ СОХРАНИТЬ МОЕ ОСОБЕННОЕ ИЗМЕНЕНИЕ И ПОЛЕЗНО ДЛЯ QA ДЛЯ НЕЗАВИСИМОСТИ ОТ ИСПЫТАНИЯ И ИСПЫТАНИЯ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...