build: add explicit commit to rc1, rc2 builds, and add ".0" to post-non-dot-release... 82/27782/4
authorAndrew Yourtchenko <ayourtch@gmail.com>
Thu, 2 Jul 2020 12:39:00 +0000 (12:39 +0000)
committerDamjan Marion <dmarion@me.com>
Tue, 18 Aug 2020 10:40:15 +0000 (10:40 +0000)
This addresses problem with incorrect sorting of artifacts in the per-patch packagecloud repositories
for throttle branches, by slightly changing the version string for the non-released (per-build) artifacts:

1) the rc1 and rc2 artifacts now will have the count of
   commits since tag (0) and the explicit commit hash

2) the builds after version XX.YY but before XX.YY.1
are named as if the version was "XX.YY.0"

Type: fix
Change-Id: Ib69a59ee98aa296c5cb24b183bba807b6cb3c05c
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/scripts/version

index 807109e..7e77116 100755 (executable)
@@ -20,7 +20,7 @@ cd "$path"
 if [ -f .version ]; then
     vstring=$(cat .version)
 else
-    vstring=$(git describe)
+    vstring=$(git describe --long)
     if [ $? != 0 ]; then
       exit 1
     fi
@@ -28,10 +28,22 @@ fi
 
 TAG=$(echo ${vstring} | cut -d- -f1 | sed -e 's/^v//')
 ADD=$(echo ${vstring} | cut -s -d- -f2)
+POINT=$(echo ${TAG} | cut -d. -f3)
+
+# if this is a "implicit zeroth" release (e.g. 19.08), check if we need to add ".0"
+# to fix the artifact versioning sorting
+if [ -z "${POINT}" ]; then
+    # verify that we are not:
+    # - directly on the XX.YY tag (then ADD will equal "0" by its construction)
+    # - not on any of the builds past "-rc[123]" but before releases - then ADD will be "rc[123]"
+    if [ "${ADD}" != "0" -a "${ADD}" != "rc0" -a "${ADD}" != "rc1" -a "${ADD}" != "rc2" ]; then
+       TAG="${TAG}.0"
+    fi
+fi
 
 git rev-parse 2> /dev/null
 if [ $? == 0 ]; then
-    CMT=$(git describe --dirty --match 'v*'| cut -s -d- -f3,4)
+    CMT=$(git describe --dirty --long --match 'v*'| cut -s -d- -f3,4)
 else
     CMT=$(echo ${vstring} | cut -s -d- -f3,4)
 fi
@@ -47,12 +59,12 @@ if [ "$1" = "rpm-version" ]; then
 fi
 
 if [ "$1" = "rpm-release" ]; then
-  [ -z "${ADD}" ] && echo release && exit
+  [ "${ADD}" = "0" ] && echo release && exit
   echo ${ADD}${CMTR:+~${CMTR}}${BLD}
   exit
 fi
 
-  if [ -n "${ADD}" ]; then
+  if [ "${ADD}" != "0" ]; then
     if [ "$1" = "rpm-string" ]; then
       echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD}
     else