Использование Maven для разработки на основе магистрали - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю над проектом, который использует студию Mulesofts Anypoint для разработки API. Anypoint studio использует Maven для создания своих проектов и управления версиями. В настоящее время мы используем модель ветвления с Git -потоком без веток релиза (feature / development / master), а инструментом CI является Jenkins. Мы хотим перейти на Azure -DevOps с ветвлением на основе магистрали.

Текущая настройка CI git flow работает следующим образом:

  1. Функция слияния с Dev
  2. Jenkins запускает на Dev и создает пакет с Maven
  3. Jenkins развертывает пакет на D
  4. Проверьте свой API на D, если его хорошо вручную запустить конвейер выпуска Jenkins
  5. Дженкинс объединит dev и master
  6. Maven создает релиз; создать пакет (например, v0.1) и подготовить следующую итерацию разработки (v0.2-SNAPSHOT) в master
  7. Jenkins Развертывает пакет на A и P
  8. Объединить мастер обратно в Dev

Итак, у нас есть 2 отдельных конвейера: dev и release. Я надеюсь, что разработка на основе транков упрощает этот процесс, сводя его к одному конвейеру, который запускается слиянием с мастером. Но я не знаю, как обращаться с версиями с Maven здесь.

Это то, что я имею в виду для магистрального конвейера (Feature / Master):

  1. Функция слияния с Master
  2. Azure запускает конвейеры Maven выпуск
  3. (!) Maven берет версию 0.1-SNAPSHOT, создает версию выпуска 0.1 и помещает ее ... куда? в ветке релиза?
  4. Maven затем создает следующую рабочую версию 0.2-SNAPSHOT в основной ветке
  5. (!) , что снова вызовет Azure конвейеров, создавая al oop

Кто-нибудь, имеющий опыт разработки на основе магистральных сетей в Maven, решает эту проблему? Я бы предпочел сделать это без ветки релиза, потому что выпущенные пакеты уже предоставляют функциональность ветки релиза.

На первый взгляд этот ответ , похоже, решает мою проблему, но он просто игнорирует проблема, обходя его и просто используя ха sh.

...