Add tasks to modify project version

This commit is contained in:
Sebastian Sdorra
2021-01-13 10:38:20 +01:00
committed by René Pfeuffer
parent 7fd6b62b73
commit d2220af840
3 changed files with 72 additions and 5 deletions

View File

@@ -117,6 +117,8 @@ dependencies {
} }
} }
import org.gradle.util.VersionNumber
// set build props // set build props
project.ext { project.ext {
timestamp = new Date().format('yyyyMMddHHmmSS') timestamp = new Date().format('yyyyMMddHHmmSS')
@@ -131,14 +133,17 @@ project.ext {
if (buildNumber != null) { if (buildNumber != null) {
snapshotVersion += "-${buildNumber}" snapshotVersion += "-${buildNumber}"
} }
dockerTag = version.replace('SNAPSHOT', snapshotVersion) dockerTag = project.version.replace('SNAPSHOT', snapshotVersion)
} else { } else {
isSnapshot = false isSnapshot = false
expandedVersion = project.version expandedVersion = project.version
expandedVersionWithDot = project.version expandedVersionWithDot = project.version
dockerRepository = 'docker.io/scmmanager/scm-manager' dockerRepository = 'docker.io/scmmanager/scm-manager'
dockerTag = version.replace('SNAPSHOT', snapshotVersion) dockerTag = project.version
} }
VersionNumber v = VersionNumber.parse(project.version)
nextSnapshotVersion = "${v.major}.${v.minor}.${v.micro + 1}-SNAPSHOT"
} }
publishing { publishing {
@@ -162,3 +167,52 @@ publishing {
} }
} }
} }
// release related tasks
task setVersion {
doLast {
if (!project.hasProperty('newVersion')) {
throw new GradleException('usage setVersion -PnewVersion=x.y.z')
}
String version = project.property('newVersion')
setNewVersion(version)
}
}
task setVersionToNextSnapshot {
doLast {
setNewVersion(nextSnapshotVersion)
}
}
task printVersion {
doLast {
println project.version
}
}
def setNewVersion(String newVersion) {
File propertiesFile = new File(project.rootDir, 'gradle.properties')
if (project.version == newVersion) {
println "project uses already version ${newVersion}"
return
}
def lines = propertiesFile.readLines('UTF-8')
def newLines = lines.collect{ line ->
if (line.trim().startsWith('version')) {
return "version = ${newVersion}"
}
return line
}
println "set version from ${project.version} to ${newVersion}"
propertiesFile.withWriter('UTF-8') {writer ->
newLines.forEach { line ->
writer.writeLine(line)
}
}
}

View File

@@ -21,5 +21,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE. # SOFTWARE.
# #
group=sonia.scm group = sonia.scm
version=2.13.0-SNAPSHOT version = 2.13.0-SNAPSHOT

View File

@@ -170,7 +170,20 @@ task cleanUpAfterPublishing {
} }
task setVersion(type: YarnTask) { task setVersion(type: YarnTask) {
args = ['run', 'set-version', project.version] doFirst {
if (!project.hasProperty('newVersion')) {
throw new GradleException('newVersion properties is required, specify with -PnewVersion=x.y.z')
}
println "set ui package modules to new version ${project.property('newVersion')}"
}
if (project.hasProperty('newVersion')) {
args = ['run', 'set-version', project.property('newVersion')]
}
dependsOn('yarn_install')
}
task setVersionToNextSnapshot(type: YarnTask) {
args = ['run', 'set-version', nextSnapshotVersion]
dependsOn('yarn_install') dependsOn('yarn_install')
} }