version.gradle 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import java.text.SimpleDateFormat
  2. import org.ajoberstar.grgit.*
  3. buildscript {
  4. repositories {
  5. mavenCentral()
  6. }
  7. dependencies {
  8. classpath 'org.ajoberstar:gradle-git:1.2.0'
  9. }
  10. }
  11. ext {
  12. jmeRevision = 0
  13. jmeGitHash = ""
  14. jmeGitTag = ""
  15. jmeShortGitHash = ""
  16. jmeBuildDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date())
  17. jmeBranchName = "unknown"
  18. jmeFullVersion = "${jmeVersion}-SNAPSHOT"
  19. jmeVersionTag="SNAPSHOT"
  20. }
  21. task configureVersionInfo {
  22. try {
  23. def grgit = Grgit.open(project.file('.'))
  24. def head = grgit.head()
  25. jmeRevision = grgit.log(includes: [head]).size()
  26. jmeGitHash = head.id
  27. jmeShortGitHash = head.abbreviatedId
  28. jmeBranchName = grgit.branch.current.name
  29. jmeGitTag = grgit.tag.list().find { it.commit == head }
  30. if(jmeVersionName==""){
  31. if (jmeGitTag != null) {
  32. jmeGitTag = jmeGitTag.name
  33. jmeFullVersion = jmeGitTag
  34. jmeVersionTag = ""
  35. } else {
  36. if(useCommitHashAsVersionName=="true"&&jmeGitHash!=null&&!jmeGitHash.equals("")){
  37. jmeFullVersion = jmeGitHash
  38. jmeVersionTag = ""
  39. }else{
  40. jmeFullVersion="${jmeVersion}-";
  41. if(jmeBranchName!="master")jmeFullVersion+="${jmeBranchName}-";
  42. jmeFullVersion+="SNAPSHOT"
  43. jmeVersionTag="SNAPSHOT"
  44. }
  45. }
  46. }else{
  47. jmeVersionTag=""
  48. jmeFullVersion=jmeVersionName
  49. }
  50. println("Revision: ${jmeRevision}")
  51. println("Hash: ${jmeGitHash}")
  52. println("Short Hash: ${jmeShortGitHash}")
  53. println("Tag: ${jmeGitTag}")
  54. println("Build Date: ${jmeBuildDate}")
  55. println("Build Branch: ${jmeBranchName}")
  56. println("Use commit hash as version ${useCommitHashAsVersionName}")
  57. println("Build Tag: ${jmeVersionTag}")
  58. println("Build Version: ${jmeFullVersion}")
  59. } catch (ex) {
  60. // Failed to get repo info
  61. logger.warn("Failed to get repository info: " + ex.message + ". " + \
  62. "Only partial build info will be generated.")
  63. }
  64. }