digital-garden/knowledge/dev/snippet/Автоматизация релиза с помощью Gradle.md

2.6 KiB
Raw Blame History

aliases tags date zero-link parents linked link
зрелость/🌱
2023-10-21
../../../garden/ru/meta/zero/00 Разработка
Gradle
https://github.com/researchgate/gradle-release

Чтобы автоматизировать релизы можно использовать специальный Gradle Plugin.

Плагин выполняет следующие действия:

  • Проверяет наличие незакомиченных изменений
  • Проверяет наличие не опубликованных изменений в удаленный репозиторий
  • Проверяет наличие SNAPSHOT зависимостей в файле gradle.properties
  • Меняет версию сервиса со SNAPSHOT на релизную. В диалоговом режиме.
  • Делает коммит.
  • Меняет версию сервиса с релизной на новый SNAPSHOT. В диалоговом режиме.
  • Автоматически публикует изменения, если удаленный репозиторий называется origin

Настройка плагина в корневом файле build.gradle

buildscript {  
    repositories {  
        gradlePluginPortal()  
        mavenCentral()  
    }  
    dependencies {  
        classpath 'org.kordamp.gradle:jandex-gradle-plugin:1.0.0'
    }  
}

apply plugin: "net.researchgate.release"  
release {  
    createReleaseTag.enabled = false  
    pushReleaseVersionBranch = 'rc'  
    preTagCommitMessage = 'Candidate release version commit: '  
    newVersionCommitMessage = 'New develop version commit: '  
    git {  
        requireBranch.set('stage')  
    }  
}
  • createReleaseTag.enabled = false - отключает проставление релизного тега
  • pushReleaseVersionBranch = 'rc' - запушит релиз в ветку RC
  • preTagCommitMessage и newVersionCommitMessage задает текст в релизных коммитах
  • requireBranch позволят настроить из какой ветки можно будет выпускать релизы.
  • GitHub репозиторий с документацией.
gradle relase

Пример того, как будут выглядеть коммиты в Git

Дополнительные материалы