From bcf34404a2782330fb2b1f9d3db493decd65f855 Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 8 Sep 2022 10:57:30 +0200 Subject: [PATCH] =?UTF-8?q?G=C3=A9n=C3=A9ration=20automatique=20de=20versi?= =?UTF-8?q?on=20avec=20incr=C3=A9ment=20pilot=C3=A9=20par=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vars/cpkg.groovy | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) 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