Чтобы автоматизировать релизы можно использовать специальный Gradle Plugin: GitHub - researchgate/gradle-release
Плагин выполняет следующие действия:
- Проверяет наличие не зафиксированных изменений
- Проверяет наличие не опубликованных изменений в удаленный репозиторий
- Проверяет наличие SNAPSHOT зависимостей в файле
gradle.properties
- Меняет версию сервиса со SNAPSHOT на релизную. В диалоговом режиме, но можно использовать флаги при работе в CI.
- Делает коммит.
- Меняет версию сервиса с релизной на новый SNAPSHOT. В диалоговом режиме.
- Автоматически публикует изменения, если удаленный репозиторий называется
origin
. Можно отключить или сконфигурировать названия веток.
Настройка плагина в корневом файле build.gradle
:
createReleaseTag.enabled = false
- отключает проставление релизного тегаpushReleaseVersionBranch = 'rc'
- запушит релиз в ветку rcpreTagCommitMessage
иnewVersionCommitMessage
задает текст в релизных коммитахrequireBranch
позволят настроить из какой ветки можно будет выпускать релизы.
Можно изменить конфигурацию формата версии для разработки. По умолчанию меняется патч версия. Вот эта конфигурация изменит минорную версию.
versionPatterns = [
/(\d+)\.\d+([^\d]*$)/: { Matcher m, Project p -> m.replaceAll("${(m[0][1] as int) + 1}.0${m[0][3] ? m[0][3] : ""}") }
]
Также можно настроить передачу текста для сообщения в теге:
release.tagCommitMessage = project.findProperty('release.tagCommitMessage')
Запустить выполнение плагина:
Пример того, как будут выглядеть коммиты в Git
Мета информация
Область:: 00 Gradle
Родитель::
Источник::
Автор::
Создана:: 2023-10-21