HHH-14083 Push to github atomically and only if the release succeeds

This commit is contained in:
Yoann Rodière 2020-06-03 11:08:04 +02:00 committed by Andrea Boriero
parent 55d3aa3a5d
commit 80db996ea5
1 changed files with 15 additions and 8 deletions

View File

@ -302,7 +302,6 @@ task addVersionCommit( dependsOn: [releaseChecks] ) {
logger.lifecycle( "Adding commit to update version to '${project.releaseVersion}'..." )
executeGitCommand( 'add', '.' )
executeGitCommand( 'commit', '-m', project.ormVersion.fullName )
executeGitCommand( 'push', project.gitRemote )
}
}
release.mustRunAfter addVersionCommit
@ -311,21 +310,29 @@ task ciRelease( dependsOn: [releaseChecks, addVersionCommit, release] ) {
group = "Release"
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."
doLast {
String tag = null
if ( !project.hasProperty( 'noTag' ) ) {
String tag = project.ormVersion.fullName
tag = project.ormVersion.fullName
// the release is tagged and the tag is pushed to github
if ( tag.endsWith( ".Final" ) ) {
tag = tag.replace( ".Final", "" )
}
logger.lifecycle( "Tagging '${tag}'..." )
executeGitCommand( 'tag', tag )
executeGitCommand( 'push', project.gitRemote, tag )
}
logger.lifecycle( "Adding commit to update version to '${project.developmentVersion}'..." )
project.ormVersionFile.text = "hibernateVersion=${project.developmentVersion}"
executeGitCommand( 'add', '.')
executeGitCommand( 'commit', '-m', project.developmentVersion )
executeGitCommand( 'push', project.gitRemote )
logger.lifecycle( "Adding commit to update version to '${project.developmentVersion}'..." )
project.ormVersionFile.text = "hibernateVersion=${project.developmentVersion}"
executeGitCommand( 'add', '.')
executeGitCommand( 'commit', '-m', project.developmentVersion )
if ( tag != null ) {
logger.lifecycle("Pushing branch and tag to remote '${project.gitRemote}'...")
executeGitCommand( 'push', '--atomic', project.gitRemote , project.gitBranch, tag )
}
else {
logger.lifecycle("Pushing branch to remote '${project.gitRemote}'...")
executeGitCommand( 'push', project.gitRemote , project.gitBranch )
}
}
}