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 в самом конце).