diff --git a/vars/cpkg.groovy b/vars/cpkg.groovy index 5ca9763..3033e73 100644 --- a/vars/cpkg.groovy +++ b/vars/cpkg.groovy @@ -44,7 +44,7 @@ def call(Map params = [:]) { } else { println("Skipping push. Set skipPush param to 'true' to enable remote repository update.") } - + // Retrieve last tag matching pattern pkg/${distRepo}/${dist}-${distVersion}/* def lastTag = sh( script: "git tag -l 'pkg/${distRepo}/${dist}-${distVersion}/*' --sort=v:refname | tail -n 1", @@ -61,7 +61,16 @@ def call(Map params = [:]) { println("Last version number is '${lastVersionNumber}'") - def versionNumber = incrementVersionNumber(lastVersionNumber) + def versionNumber = sh( + script: "git describe --always ${currentRef}", + returnStdout: true, + ).trim() + + def isCommitRef = !versionNumber.matches(/^[0-9]+\.[0-9]+\.[0-9]+.*$/) + + if (isCommitRef) { + versionNumber = "0.0.0-${versionNumber}" + } println("New version number will be '${versionNumber}'") result['newVersionNumber'] = versionNumber @@ -106,22 +115,4 @@ def call(Map params = [:]) { } return result -} - -def incrementVersionNumber(String versionNumber) { - // Split versionNumber (typical pattern: ..) - def versionNumberParts = versionNumber.split(/\./) - - // Extract path number - def patchNumber = versionNumberParts.last() - - // Split patch number (typical pattern: -) - def patchNumberParts = patchNumber.split('-') - - // If version number matches pattern ..- - if (patchNumberParts.size() > 1) { - return versionNumberParts[0..-2].join('.') + '.' + patchNumberParts[0..-2].join('-') + '-' + (patchNumberParts.last().toInteger() + 1) - } else { // Else version number matches pattern .. - return versionNumberParts[0..-2].join('.') + '.' + (patchNumber.toInteger() + 1) - } } \ No newline at end of file