1
1
apply plugin : ' com.android.application'
2
2
apply plugin : ' org.ajoberstar.grgit'
3
+ apply from : " ${ rootProject.projectDir} /gradle/prepare_release.gradle"
4
+ apply from : " ${ rootProject.projectDir} /gradle/clean_release.gradle"
5
+ apply from : " ${ rootProject.projectDir} /gradle/perform_release.gradle"
3
6
4
7
android {
5
8
compileSdk 34
@@ -80,41 +83,14 @@ task ensureCleanRepo {
80
83
81
84
task releaseClean (dependsOn : ensureCleanRepo) {
82
85
doLast {
83
- def clean = true
84
- def applicationId = android. defaultConfig. applicationId
85
-
86
- String headCommitMessage = grgit. head(). shortMessage
87
- while (headCommitMessage. contains(" [gradle-release-task]" )) {
88
- clean = false
89
- println " Found git commit: $headCommitMessage "
90
- if (headCommitMessage. indexOf(" $applicationId -" ) > -1 ) {
91
- def tagName = headCommitMessage. split(" $applicationId -" )[1 ]
92
- println " Removing the git tag: $tagName "
93
- try {
94
- grgit. tag. remove {
95
- names = [tagName]
96
- }
97
- } catch (Exception e) {
98
- println " Error while removing git tag:\n $e "
99
- }
100
- }
101
- println " Resetting the git commit permanently!"
102
- grgit. reset(commit : " HEAD~1" , mode : " hard" )
103
- headCommitMessage = grgit. head(). shortMessage
104
-
105
- }
106
- if (clean){
107
- println " Repository is already clean"
108
- }
109
- println " Done!"
86
+ cleanRelease()
110
87
}
111
88
}
112
89
113
90
// Task parameters:
114
91
// bumpVersion -> if available will specify new versionName directly and ignores the `bumpType` parameter.
115
92
// bumpType[major|minor|patch] -> will specify how the version bumping occurs.
116
93
117
- apply from : " ${ rootProject.projectDir} /gradle/prepare_release.gradle"
118
94
task releasePrepare (dependsOn : ensureCleanRepo) {
119
95
doLast {
120
96
prepareRelease()
@@ -123,17 +99,6 @@ task releasePrepare(dependsOn: ensureCleanRepo) {
123
99
124
100
task releasePerform (dependsOn : ensureCleanRepo) {
125
101
doLast {
126
- boolean force = false
127
- if (project. properties. containsKey(" force" )) {
128
- force = project. properties[" force" ]
129
- }
130
- println " Pushing the newest commits to the remote repository (force: $force )"
131
- try {
132
- grgit. push(force : force, tags : true )
133
- } catch (Exception e) {
134
- throw new GradleException (" Failed to push to the repo,\n " +
135
- " you can try using -Pforce=true parameter to force the push, error: \n $e " )
136
- }
137
- println " Done!"
102
+ performRelease()
138
103
}
139
104
}
0 commit comments