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
project.ext {
timestamp = new Date().format('yyyyMMddHHmmSS')
@@ -131,14 +133,17 @@ project.ext {
if (buildNumber != null) {
snapshotVersion += "-${buildNumber}"
}
dockerTag = version.replace('SNAPSHOT', snapshotVersion)
dockerTag = project.version.replace('SNAPSHOT', snapshotVersion)
} else {
isSnapshot = false
expandedVersion = project.version
expandedVersionWithDot = project.version
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 {
@@ -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
# SOFTWARE.
#
group=sonia.scm
version=2.13.0-SNAPSHOT
group = sonia.scm
version = 2.13.0-SNAPSHOT

View File

@@ -170,7 +170,20 @@ task cleanUpAfterPublishing {
}
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')
}