@@ -39,7 +39,8 @@ import org.gradle.kotlin.dsl.provideDelegate
39
39
* @property releasedVersion A [ModuleVersion] of what to bump from. Defaults to the project
40
40
* version.
41
41
* @property newVersion A [ModuleVersion] of what to set the version to. Defaults to one patch
42
- * higher than [releasedVersion]
42
+ * higher than [releasedVersion].
43
+ * @property bumpVersion If set, then the default provided by [newVersion] will be bumped by one patch. Defaults to `true`.
43
44
* @see PostReleasePlugin
44
45
*/
45
46
abstract class VersionBumpTask : DefaultTask () {
@@ -52,16 +53,22 @@ abstract class VersionBumpTask : DefaultTask() {
52
53
@get: [Optional Input ]
53
54
abstract val newVersion: Property <ModuleVersion >
54
55
56
+ @get: [Optional Input ]
57
+ abstract val bumpVersion: Property <Boolean >
58
+
55
59
init {
56
60
configure()
57
61
}
58
62
59
63
@TaskAction
60
64
fun build () {
65
+ val latestVersion = releasedVersion.get()
66
+ val version = newVersion.orNull ? : if (bumpVersion.get()) latestVersion.bump() else latestVersion
67
+
61
68
versionFile.get().asFile.rewriteLines {
62
69
when {
63
- it.startsWith(" version=" ) -> " version=${newVersion.get() } "
64
- it.startsWith(" latestReleasedVersion" ) -> " latestReleasedVersion=${releasedVersion.get() } "
70
+ it.startsWith(" version=" ) -> " version=${version } "
71
+ it.startsWith(" latestReleasedVersion" ) -> " latestReleasedVersion=${latestVersion } "
65
72
else -> it
66
73
}
67
74
}
@@ -70,7 +77,7 @@ abstract class VersionBumpTask : DefaultTask() {
70
77
fun configure () {
71
78
versionFile.convention(project.layout.projectDirectory.file(" gradle.properties" ))
72
79
releasedVersion.convention(computeReleasedVersion())
73
- newVersion .convention(releasedVersion.map { it.bump() } )
80
+ bumpVersion .convention(true )
74
81
}
75
82
76
83
fun computeReleasedVersion (): ModuleVersion ? {
0 commit comments