Skip to content

Commit d5403f6

Browse files
committed
HHH-17239 Automate maintenance releases
1 parent 9304ff0 commit d5403f6

File tree

2 files changed

+32
-23
lines changed

2 files changed

+32
-23
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ plugins {
3333
id 'idea'
3434
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.0'
3535
id 'eclipse'
36+
id "com.dorongold.task-tree" version "2.1.1"
3637
}
3738

3839
apply from: file( 'gradle/module.gradle' )

release/release.gradle

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def changeToDevelopmentVersionTask = tasks.register( 'changeToDevelopmentVersion
318318
}
319319
}
320320

321-
def gitTasksAfterReleaseTask = tasks.register( 'gitTasksAfterRelease' ) {
321+
def releasePreparePostGitTask = tasks.register( 'gitTasksAfterRelease' ) {
322322
dependsOn changeToDevelopmentVersionTask
323323

324324
doLast {
@@ -345,22 +345,7 @@ def publishReleaseArtifactsTask = tasks.register( 'publishReleaseArtifacts' ) {
345345
dependsOn uploadDocumentationDescriptor
346346
}
347347

348-
def releaseTask = tasks.register( 'release' ) {
349-
group 'Release'
350-
description 'Performs a release on local check-out, including updating changelog and '
351-
352-
dependsOn gitPreparationForReleaseTask
353-
dependsOn publishReleaseArtifactsTask
354-
355-
finalizedBy gitTasksAfterReleaseTask
356-
}
357-
358-
def ciReleaseChecksTask = tasks.register( 'ciReleaseChecks' ) {
359-
360-
}
361-
362-
def gitTasksAfterCiReleaseTask = tasks.register( 'gitTasksAfterCiRelease' ) {
363-
dependsOn gitTasksAfterReleaseTask
348+
def releasePerformPostGitTask = tasks.register( 'gitTasksAfterReleasePerform' ) {
364349

365350
doLast {
366351
if ( project.createTag ) {
@@ -374,14 +359,37 @@ def gitTasksAfterCiReleaseTask = tasks.register( 'gitTasksAfterCiRelease' ) {
374359
}
375360
}
376361

362+
def releasePrepareTask = tasks.register( 'releasePrepare' ) {
363+
group 'Release'
364+
description 'Performs release preparations on local check-out, including updating changelog'
365+
366+
dependsOn gitPreparationForReleaseTask
367+
368+
finalizedBy releasePreparePostGitTask
369+
}
370+
371+
def releasePerformTask = tasks.register( 'releasePerform' ) {
372+
group 'Release'
373+
description 'Performs a release on local check-out, including updating changelog and '
374+
375+
dependsOn publishReleaseArtifactsTask
376+
377+
finalizedBy releasePerformPostGitTask
378+
}
379+
380+
def releaseTask = tasks.register( 'release' ) {
381+
group 'Release'
382+
description 'Performs a release on local check-out, including updating changelog and '
383+
384+
dependsOn releasePrepareTask
385+
dependsOn releasePerformTask
386+
}
387+
377388
def ciReleaseTask = tasks.register( 'ciRelease' ) {
378389
group 'Release'
379390
description 'Performs a release: the hibernate version is set and the changelog.txt file updated, the changes are pushed to github, then the release is performed, tagged and the hibernate version is set to the development one.'
380391

381-
dependsOn ciReleaseChecksTask
382392
dependsOn releaseTask
383-
384-
finalizedBy gitTasksAfterCiReleaseTask
385393
}
386394

387395
static String executeGitCommand(Object ... subcommand){
@@ -512,9 +520,9 @@ gradle.getTaskGraph().whenReady {tg->
512520
String releaseVersionLocal
513521
String developmentVersionLocal
514522

515-
def console = tg.hasTask( project.tasks.ciReleaseChecks )
516-
? null
517-
: System.console()
523+
def console = tg.hasTask( project.tasks.release ) && !tg.hasTask( project.tasks.ciRelease )
524+
? System.console()
525+
: null
518526

519527
if (project.hasProperty('releaseVersion')) {
520528
releaseVersionLocal = project.property('releaseVersion')

0 commit comments

Comments
 (0)