diff --git a/build.gradle b/build.gradle index 690c0fb39f..6211183a7a 100644 --- a/build.gradle +++ b/build.gradle @@ -997,12 +997,16 @@ def buildTime() { @Memoized def calculateVersion() { // Regex pattern for basic calendar versioning, with provision to omit patch rev - def calVerPattern = ~/\d+\.\d+(\.\d+)?(-.*)?/ + def calVerPattern = ~/\d+\.\d+(\.\d+)?(-\w+)?$/ + def calVerWithCommitPattern = ~/\d+\.\d+(\.\d+)?(-\w+)?-[0-9a-fA-F]{7,8}$/ def gitDetails = getGitCommitDetails() // Adjust length as needed - if (project.hasProperty('version') && (project.version =~ calVerPattern)) { + if (project.hasProperty('version') && project.version =~ calVerWithCommitPattern) { + println("Utilising supplied version as it appears to already contain commit hash: ${project.version}") + return project.version + } else if (project.hasProperty('version') && project.version =~ calVerPattern) { println("Generating project version using supplied version: ${project.version}-${gitDetails.hash}") return "${project.version}-${gitDetails.hash}" - } else { + } else { // If no version is supplied or it doesn't match the semantic versioning, calculate from git println("Generating project version using date (${gitDetails.date}-develop-${gitDetails.hash}), as supplied version is not semver: ${project.version}") return "${gitDetails.date}-develop-${gitDetails.hash}"