Git flow: как настроить процесс выпуска одним щелчком мыши в Jenkins?

мы используем стандартную модель ветвления потока git (разработка, мастер, выпуск - исправление- и т. д.).

в рамках нашего рабочего процесса мы хотели бы настроить выпуск "одним щелчком мыши" через jenkins.

Я смотрел на jgitflow-maven-плагин. Могу ли я настроить этот плагин для выпуска в один клик от jenkins? Если да, то каковы параметры конфигурации?

в частности, могу ли я сделать что - то вроде это?

Jenkins Job
Maven goals:    release-start release-finish -Dsomething -Delse

и есть ли способ сказать, что он автоматически строится из последней версии моментального снимка, например, если версия 1.2.3-SNAPSHOT построить release-1.2.3.

в противном случае, есть плагин maven, который строит релизы согласно модели ветвления потока git (т. е. строить из develop и создать новую ветку с именем release-x.y.z).

4 ответов


хотя этот ответ один год, я хотел бы отметить, что между тем jgitflow (v1.0-m5.1) работает в пакетном режиме maven.

Итак, чтобы освободить артефакт с помощью just одной командой вы можете выполнить:

mvn --batch-mode jgitflow:release-start jgitflow:release-finish

вы не необходимо указать developmentVersion и releaseVersion.

JGitFlow будет использовать текущую версию минус -SNAPSHOT участие в качестве версии. Затем он увеличивает наименее значимую цифру и добавляет -SNAPSHOT снова для следующей версии разработки.
пример 1.0.0-SNAPSHOT --> версия: 1.0.0, следующая версия разработки:1.0.1-SNAPSHOT

для настройки одним щелчком мыши Дженкинс освободить задание вам нужно настроить некоторые вещи, касающиеся ЖКТ.

под Source Code Management > Git > Additional Behaviors выберите

  • Wipe out repository & force git clone: просто чтобы убедиться, что рабочее место является чистым
  • Checkout to specific local branch: ваш develop филиала.

наконец, выпуск происходит локально на вашем сервере Jenkins, поэтому вы хотите отодвиньте изменения на ваш удаленный сервер Git.

для этого, самый простой способ это добавить Post-build action который выполняет следующую команду bash (имена ветвей могут отличаться, я использовал значения по умолчанию JGitFlow):

git push origin develop master --tags

Примечание если Дженкинс работает в Windows, вам либо нужно выполнить пакетный скрипт, содержащий ту же команду (иногда это не работает из-за проблем SSH с Windows) или настроить Git Publisher Post-build action соответственно.


вы можете просто использовать плагин jenkins M2 Релиз Плагин С целями выпуска опции -B -DautoVersionSubmodules=true jgitflow:release-start jgitflow:release-finish


мы закончили с запуском выпуска через CLI на клиенте (потому что в Jenkins есть ошибка запуск выпуска).

git flow release start -DautoVersionSubmodules=true

Если вы хотите использовать пакетный режим вам нужно указать developmentVersion и releaseVersion.

создал новое задание в Jenkins для создания ветви выпуска и использования M2 Релиз Плагин чтобы освободить его, наконец:

-B jgitflow:release-finish

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

-Darguments=-Pprofile

мы никогда не находили способ заставить это работать через плагин или цель maven в Дженкинсе.

наше решение закончилось bash скрипт, который сделал git flow release start <version>, процесс освобождения мавен git flow release finish <version> и другие вещи (git pull on develop и master в самом начале, git push и уведомление slack в самом конце).