|
|
|
@ -2,29 +2,21 @@ |
|
|
|
|
Version Info Examples |
|
|
|
|
===================== |
|
|
|
|
|
|
|
|
|
Nightly Build Snapshot |
|
|
|
|
* Full Version: 3.1-5124 |
|
|
|
|
* POM Version: 3.1.0-SNAPSHOT |
|
|
|
|
* NBM Revision: 5124 |
|
|
|
|
* NBM UC Suffix: nightly/3.1/plugins |
|
|
|
|
|
|
|
|
|
Nightly Build Snapshot (PBRIsComing branch) |
|
|
|
|
* Full Version: 3.1-PBRIsComing-5124 |
|
|
|
|
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT |
|
|
|
|
* NBM Revision: 5124 |
|
|
|
|
* NBM UC Suffix: PBRIsComing-nightly/3.1/plugins |
|
|
|
|
|
|
|
|
|
Alpha1 Release |
|
|
|
|
* Full Version: 3.1-alpha1 |
|
|
|
|
* POM Version: 3.1.0-alpha1 |
|
|
|
|
* NBM Revision: 1 |
|
|
|
|
* NBM UC Suffix: stable/3.1/plugins |
|
|
|
|
Nightly Build Snapshot (no git tag) |
|
|
|
|
* Full Version: 3.1.0-5124 |
|
|
|
|
* POM Version: 3.1.0-SNAPSHOT |
|
|
|
|
|
|
|
|
|
Nightly Build Snapshot (PBRIsComing branch) (no git tag) |
|
|
|
|
* Full Version: 3.1.0-PBRIsComing-5124 |
|
|
|
|
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT |
|
|
|
|
|
|
|
|
|
Alpha1 Release (git tag: v3.1-alpha1) |
|
|
|
|
* Full Version: 3.1.0-alpha1 |
|
|
|
|
* POM Version: 3.1.0-alpha1 |
|
|
|
|
|
|
|
|
|
Final Release |
|
|
|
|
* Full Version: 3.1 |
|
|
|
|
* POM Version: 3.1.0 |
|
|
|
|
* NBM Revision: 5 |
|
|
|
|
* NBM UC Suffix: stable/3.1/plugins |
|
|
|
|
Final Release (git tag: v3.1) |
|
|
|
|
* Full Version: 3.1.0 |
|
|
|
|
* POM Version: 3.1.0 |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat |
|
|
|
@ -35,83 +27,156 @@ buildscript { |
|
|
|
|
mavenCentral() |
|
|
|
|
} |
|
|
|
|
dependencies { |
|
|
|
|
classpath 'org.ajoberstar:gradle-git:1.2.0' |
|
|
|
|
classpath 'org.ajoberstar:gradle-git:1.4.1' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ext { |
|
|
|
|
jmeRevision = 0 |
|
|
|
|
jmeNbmRevision = 0 |
|
|
|
|
jmeGitHash = "" |
|
|
|
|
jmeGitTag = "" |
|
|
|
|
jmeShortGitHash = "" |
|
|
|
|
jmeBuildDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()) |
|
|
|
|
jmeBranchName = "unknown" |
|
|
|
|
jmeFullVersion = "${jmeVersion}-UNKNOWN" |
|
|
|
|
jmePomVersion = "unknown" |
|
|
|
|
jmeNbmUcSuffix = "unknown" |
|
|
|
|
releaseInfo = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
task configureVersionInfo { |
|
|
|
|
try { |
|
|
|
|
def grgit = Grgit.open(project.file('.')) |
|
|
|
|
jmeRevision = grgit.log(includes:['HEAD']).size() |
|
|
|
|
jmeGitHash = grgit.head().id |
|
|
|
|
jmeShortGitHash = grgit.head().abbreviatedId |
|
|
|
|
jmeBranchName = grgit.branch.current.name |
|
|
|
|
jmeGitTag = grgit.describe() |
|
|
|
|
if (jmeGitTag == null) jmeGitTag = "" |
|
|
|
|
|
|
|
|
|
enum ReleaseType { |
|
|
|
|
Unknown, |
|
|
|
|
Snapshot, |
|
|
|
|
PreRelease, |
|
|
|
|
Release; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class ReleaseInfo { |
|
|
|
|
|
|
|
|
|
String tag; |
|
|
|
|
String version; |
|
|
|
|
String releaseName; |
|
|
|
|
ReleaseType releaseType; |
|
|
|
|
String buildDate; |
|
|
|
|
|
|
|
|
|
String branch; |
|
|
|
|
String hash; |
|
|
|
|
String shortHash; |
|
|
|
|
int revision; |
|
|
|
|
|
|
|
|
|
String fullVersion; |
|
|
|
|
String pomVersion; |
|
|
|
|
|
|
|
|
|
ReleaseInfo(String version, Grgit repo) { |
|
|
|
|
loadBuildDate(); |
|
|
|
|
loadRepoInfo(version, repo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ReleaseInfo(String version) { |
|
|
|
|
loadBuildDate(); |
|
|
|
|
loadUnknownInfo(version); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
final void loadBuildDate() { |
|
|
|
|
this.buildDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
final void loadUnknownInfo(String version) { |
|
|
|
|
this.releaseType = ReleaseType.Unknown; |
|
|
|
|
this.version = version; |
|
|
|
|
this.releaseName = "unknown"; |
|
|
|
|
this.tag = ""; |
|
|
|
|
this.revision = 0; |
|
|
|
|
this.branch = "unknown"; |
|
|
|
|
this.hash = ""; |
|
|
|
|
this.shortHash = ""; |
|
|
|
|
this.fullVersion = "${version}-UNKNOWN"; |
|
|
|
|
this.pomVersion = "${version}-UNKNOWN"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
final void loadRepoInfo(String version, Grgit repo) { |
|
|
|
|
this.releaseType = ReleaseType.Snapshot; |
|
|
|
|
this.version = version; |
|
|
|
|
|
|
|
|
|
Commit head = repo.head(); |
|
|
|
|
this.revision = repo.log(includes:[head]).size(); |
|
|
|
|
this.hash = head.id; |
|
|
|
|
this.shortHash = head.abbreviatedId; |
|
|
|
|
this.branch = repo.branch.current.name; |
|
|
|
|
|
|
|
|
|
Tag gitTag = repo.tag.list().find { it.commit == head } |
|
|
|
|
if (gitTag != null){ |
|
|
|
|
this.tag = gitTag.name; |
|
|
|
|
} else { |
|
|
|
|
this.tag = ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (System.env.TRAVIS_BRANCH != null) { |
|
|
|
|
jmeBranchName = System.env.TRAVIS_BRANCH |
|
|
|
|
this.branch = System.env.TRAVIS_BRANCH |
|
|
|
|
} |
|
|
|
|
if (System.env.TRAVIS_TAG != null) { |
|
|
|
|
jmeGitTag = System.env.TRAVIS_TAG |
|
|
|
|
this.tag = System.env.TRAVIS_TAG |
|
|
|
|
} |
|
|
|
|
if (System.env.TRAVIS_PULL_REQUEST != null && |
|
|
|
|
System.env.TRAVIS_PULL_REQUEST != "false") { |
|
|
|
|
jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST |
|
|
|
|
if (System.env.TRAVIS_PULL_REQUEST != null && System.env.TRAVIS_PULL_REQUEST != "false") { |
|
|
|
|
this.branch += "-pr-" + System.env.TRAVIS_PULL_REQUEST |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
jmeFullVersion = jmeMainVersion |
|
|
|
|
jmePomVersion = jmeVersion |
|
|
|
|
|
|
|
|
|
if (jmeBranchName != "master") { |
|
|
|
|
jmeFullVersion += "-${jmeBranchName}" |
|
|
|
|
jmePomVersion += "-${jmeBranchName}" |
|
|
|
|
|
|
|
|
|
jmeNbmUcSuffix = "${jmeBranchName}-" |
|
|
|
|
} else { |
|
|
|
|
jmeNbmUcSuffix = "" |
|
|
|
|
loadTagInfo(this.tag); |
|
|
|
|
|
|
|
|
|
this.fullVersion = version; |
|
|
|
|
if (this.branch != "master") { |
|
|
|
|
this.fullVersion += "-${branch}"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (jmeVersionTag == "SNAPSHOT") { |
|
|
|
|
jmeNbmUcSuffix += "nightly" |
|
|
|
|
} else { |
|
|
|
|
jmeNbmUcSuffix += "stable" |
|
|
|
|
|
|
|
|
|
switch (this.releaseType) { |
|
|
|
|
case ReleaseType.Snapshot: |
|
|
|
|
this.pomVersion = "${fullVersion}-SNAPSHOT"; |
|
|
|
|
this.fullVersion += "-${revision}"; |
|
|
|
|
break; |
|
|
|
|
case ReleaseType.PreRelease: |
|
|
|
|
this.pomVersion = "${fullVersion}-${releaseName}"; |
|
|
|
|
this.fullVersion += "-${releaseName}"; |
|
|
|
|
break; |
|
|
|
|
case ReleaseType.Release: |
|
|
|
|
this.pomVersion = "${fullVersion}"; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
final void loadTagInfo(String tag) { |
|
|
|
|
this.tag = tag; |
|
|
|
|
|
|
|
|
|
jmeNbmUcSuffix += "/" + jmeMainVersion + "/plugins" |
|
|
|
|
|
|
|
|
|
if (jmeVersionTag == "SNAPSHOT") { |
|
|
|
|
jmeFullVersion += "-${jmeRevision}" |
|
|
|
|
jmePomVersion += "-SNAPSHOT" |
|
|
|
|
jmeNbmRevision = jmeRevision |
|
|
|
|
} else if (jmeVersionTag == "") { |
|
|
|
|
jmeNbmRevision = jmeVersionTagID |
|
|
|
|
} else { |
|
|
|
|
jmeFullVersion += "-${jmeVersionTag}" |
|
|
|
|
jmePomVersion += "-${jmeVersionTag}" |
|
|
|
|
jmeNbmRevision = jmeVersionTagID |
|
|
|
|
if (tag == null || !tag.startsWith("v")) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
logger.warn("Full Version: ${jmeFullVersion}") |
|
|
|
|
logger.warn("POM Version: ${jmePomVersion}") |
|
|
|
|
logger.warn("NBM Revision: ${jmeNbmRevision}") |
|
|
|
|
logger.warn("NBM UC Suffix: ${jmeNbmUcSuffix}") |
|
|
|
|
String[] parts = tag.split("-"); |
|
|
|
|
if (parts.length == 2) { |
|
|
|
|
if (parts[0].size() < 1 || parts[1].size() < 1) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
releaseType = ReleaseType.PreRelease; |
|
|
|
|
version = parts[0].substring(1); |
|
|
|
|
releaseName = parts[1]; |
|
|
|
|
} else if (parts.length == 1) { |
|
|
|
|
if (parts[0].size() < 1) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
releaseType = ReleaseType.Release; |
|
|
|
|
version = parts[0]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String toString() { |
|
|
|
|
return "tag = ${tag}, base_ver = ${baseVersion}, main_ver = ${mainVersion}, " + |
|
|
|
|
"prerelease = ${prerelease}, release_name = ${releaseName}" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
task configureVersionInfo { |
|
|
|
|
try { |
|
|
|
|
def repo = Grgit.open(project.file('.')) |
|
|
|
|
releaseInfo = new ReleaseInfo(jmeVersion, repo); |
|
|
|
|
logger.warn("Full Version: ${releaseInfo.fullVersion}") |
|
|
|
|
logger.warn("POM Version: ${releaseInfo.pomVersion}") |
|
|
|
|
} catch (ex) { |
|
|
|
|
// Failed to get repo info |
|
|
|
|
logger.warn("Failed to get repository info: " + ex.message + ". " + \ |
|
|
|
|
"Only partial build info will be generated.") |
|
|
|
|
|
|
|
|
|
releaseInfo = new ReleaseInfo(jmeVersion); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|