build: release version defined from tag in format “vX.Y.Z” and “vX.Y.Z-M”.
Refactor to clearly split behaviour when release (based on tag) or not (SNAPSHOT).
This commit is contained in:
parent
f29b77ea36
commit
9416387111
111
version.gradle
111
version.gradle
@ -3,27 +3,31 @@
|
|||||||
=====================
|
=====================
|
||||||
|
|
||||||
Nightly Build Snapshot
|
Nightly Build Snapshot
|
||||||
|
* git tag:
|
||||||
* Full Version: 3.1-5124
|
* Full Version: 3.1-5124
|
||||||
* POM Version: 3.1.0-SNAPSHOT
|
* POM Version: 3.1.0-SNAPSHOT
|
||||||
* NBM Revision: 5124
|
* NBM Revision: 5124
|
||||||
* NBM UC Suffix: nightly/3.1/plugins
|
* NBM UC Suffix: nightly/3.1/plugins
|
||||||
|
|
||||||
Nightly Build Snapshot (PBRIsComing branch)
|
Nightly Build Snapshot (PBRIsComing branch)
|
||||||
|
* git tag:
|
||||||
* Full Version: 3.1-PBRIsComing-5124
|
* Full Version: 3.1-PBRIsComing-5124
|
||||||
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT
|
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT
|
||||||
* NBM Revision: 5124
|
* NBM Revision: 5124
|
||||||
* NBM UC Suffix: PBRIsComing-nightly/3.1/plugins
|
* NBM UC Suffix: PBRIsComing-nightly/3.1/plugins
|
||||||
|
|
||||||
Alpha1 Release
|
Alpha1 Release
|
||||||
|
* git tag: v3.1.0-alpha1
|
||||||
* Full Version: 3.1-alpha1
|
* Full Version: 3.1-alpha1
|
||||||
* POM Version: 3.1.0-alpha1
|
* POM Version: 3.1.0-alpha1
|
||||||
* NBM Revision: 1
|
* NBM Revision: 0
|
||||||
* NBM UC Suffix: stable/3.1/plugins
|
* NBM UC Suffix: stable/3.1/plugins
|
||||||
|
|
||||||
Final Release
|
Final Release
|
||||||
|
* git tag: v3.1.0
|
||||||
* Full Version: 3.1
|
* Full Version: 3.1
|
||||||
* POM Version: 3.1.0
|
* POM Version: 3.1.0
|
||||||
* NBM Revision: 5
|
* NBM Revision: 0
|
||||||
* NBM UC Suffix: stable/3.1/plugins
|
* NBM UC Suffix: stable/3.1/plugins
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -52,6 +56,63 @@ ext {
|
|||||||
jmeNbmUcSuffix = "unknown"
|
jmeNbmUcSuffix = "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def getReleaseInfo(String tag) {
|
||||||
|
if (tag == null) {
|
||||||
|
// not a tagged commit
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!tag.startsWith("v")) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
tag = tag.substring(1)
|
||||||
|
|
||||||
|
String[] parts = tag.split("-");
|
||||||
|
String mainVersion;
|
||||||
|
boolean prerelease;
|
||||||
|
String releaseName = null;
|
||||||
|
|
||||||
|
if (parts.length == 2) {
|
||||||
|
// prerelease
|
||||||
|
prerelease = true;
|
||||||
|
mainVersion = parts[0];
|
||||||
|
releaseName = parts[1];
|
||||||
|
if (releaseName.size() == 0) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else if (parts.length == 1) {
|
||||||
|
// final release
|
||||||
|
prerelease = false;
|
||||||
|
mainVersion = parts[0];
|
||||||
|
} else {
|
||||||
|
// error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mainVersion.size() == 0) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
parts = mainVersion.split("\\.");
|
||||||
|
if (parts.size() != 3) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String baseVersion = parts[0] + "." + parts[1];
|
||||||
|
|
||||||
|
return [
|
||||||
|
"tag" : tag,
|
||||||
|
"baseVersion" : baseVersion,
|
||||||
|
"mainVersion" : mainVersion,
|
||||||
|
"prerelease" : prerelease,
|
||||||
|
"releaseName" : releaseName,
|
||||||
|
"releaseSuffix": (prerelease ? "-${releaseName}": "")
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
task configureVersionInfo {
|
task configureVersionInfo {
|
||||||
try {
|
try {
|
||||||
def grgit = Grgit.open(project.file('.'))
|
def grgit = Grgit.open(project.file('.'))
|
||||||
@ -59,54 +120,38 @@ task configureVersionInfo {
|
|||||||
jmeGitHash = grgit.head().id
|
jmeGitHash = grgit.head().id
|
||||||
jmeShortGitHash = grgit.head().abbreviatedId
|
jmeShortGitHash = grgit.head().abbreviatedId
|
||||||
jmeBranchName = grgit.branch.current.name
|
jmeBranchName = grgit.branch.current.name
|
||||||
jmeGitTag = grgit.describe()
|
//gtgit.describe doesn't behave like git describe and it doens't support any option
|
||||||
if (jmeGitTag == null) jmeGitTag = ""
|
//jmeGitTag = grgit.describe() ?: System.env.TRAVIS_TAG
|
||||||
|
jmeGitTag = "git describe --tags --exact-match --dirty".execute().text.trim() ?: System.env.TRAVIS_TAG
|
||||||
|
|
||||||
|
def releaseInfo = getReleaseInfo(jmeGitTag)
|
||||||
|
if (releaseInfo != null) {
|
||||||
|
jmeFullVersion = "${releaseInfo.baseVersion}${releaseInfo.releaseSuffix}"
|
||||||
|
jmePomVersion = "${releaseInfo.mainVersion}${releaseInfo.releaseSuffix}"
|
||||||
|
jmeNbmRevision = "0"
|
||||||
|
jmeNbmUcSuffix = "stable/${releaseInfo.baseVersion}/plugins"
|
||||||
|
} else {
|
||||||
|
// SNAPSHOT
|
||||||
|
jmeFullVersion = jmeMainVersion
|
||||||
|
jmePomVersion = jmeVersion
|
||||||
if (System.env.TRAVIS_BRANCH != null) {
|
if (System.env.TRAVIS_BRANCH != null) {
|
||||||
jmeBranchName = System.env.TRAVIS_BRANCH
|
jmeBranchName = System.env.TRAVIS_BRANCH
|
||||||
}
|
}
|
||||||
if (System.env.TRAVIS_TAG != null) {
|
|
||||||
jmeGitTag = System.env.TRAVIS_TAG
|
|
||||||
}
|
|
||||||
if (System.env.TRAVIS_PULL_REQUEST != null &&
|
if (System.env.TRAVIS_PULL_REQUEST != null &&
|
||||||
System.env.TRAVIS_PULL_REQUEST != "false") {
|
System.env.TRAVIS_PULL_REQUEST != "false") {
|
||||||
jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST
|
jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST
|
||||||
}
|
}
|
||||||
|
if (jmeBranchName != "master") {
|
||||||
jmeFullVersion = jmeMainVersion
|
|
||||||
jmePomVersion = jmeVersion
|
|
||||||
|
|
||||||
if (jmeGitTag.startsWith(jmeMainVersion)) {
|
|
||||||
jmeVersionTag = ""
|
|
||||||
jmePomVersion = jmeGitTag
|
|
||||||
}
|
|
||||||
if (jmeBranchName != "master" && jmeVersionTag == "SNAPSHOT") {
|
|
||||||
jmeFullVersion += "-${jmeBranchName}"
|
jmeFullVersion += "-${jmeBranchName}"
|
||||||
jmePomVersion += "-${jmeBranchName}"
|
jmePomVersion += "-${jmeBranchName}"
|
||||||
|
|
||||||
jmeNbmUcSuffix = "${jmeBranchName}-"
|
jmeNbmUcSuffix = "${jmeBranchName}-"
|
||||||
} else {
|
} else {
|
||||||
jmeNbmUcSuffix = ""
|
jmeNbmUcSuffix = ""
|
||||||
}
|
}
|
||||||
|
jmeNbmUcSuffix += "nightly/" + jmeMainVersion + "/plugins"
|
||||||
if (jmeVersionTag == "SNAPSHOT") {
|
|
||||||
jmeNbmUcSuffix += "nightly"
|
|
||||||
} else {
|
|
||||||
jmeNbmUcSuffix += "stable"
|
|
||||||
}
|
|
||||||
|
|
||||||
jmeNbmUcSuffix += "/" + jmeMainVersion + "/plugins"
|
|
||||||
|
|
||||||
if (jmeVersionTag == "SNAPSHOT") {
|
|
||||||
jmeFullVersion += "-${jmeRevision}"
|
jmeFullVersion += "-${jmeRevision}"
|
||||||
jmePomVersion += "-SNAPSHOT"
|
jmePomVersion += "-SNAPSHOT"
|
||||||
jmeNbmRevision = jmeRevision
|
jmeNbmRevision = jmeRevision
|
||||||
} else if (jmeVersionTag == "") {
|
|
||||||
jmeNbmRevision = jmeVersionTagID
|
|
||||||
} else {
|
|
||||||
jmeFullVersion += "-${jmeVersionTag}"
|
|
||||||
jmePomVersion += "-${jmeVersionTag}"
|
|
||||||
jmeNbmRevision = jmeVersionTagID
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.warn("Full Version: ${jmeFullVersion}")
|
logger.warn("Full Version: ${jmeFullVersion}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user