Browse Source

HPCC-23454 Java projects tagging and branch update

Signed-off-by: Michael Gardner <michael.gardner@lexisnexisrisk.com>
Michael Gardner 5 years ago
parent
commit
07dd6fd1a5
3 changed files with 106 additions and 2 deletions
  1. 4 1
      cmake_modules/go_gold.sh
  2. 4 1
      cmake_modules/go_rc.sh
  3. 98 0
      cmake_modules/parse_hpcc_pom.sh

+ 4 - 1
cmake_modules/go_gold.sh

@@ -6,6 +6,9 @@
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 
 . $SCRIPT_DIR/parse_cmake.sh
+if [ -e pom.xml ] ; then
+  . $SCRIPT_DIR/parse_hpcc_pom.sh
+fi
 
 sync_git
 parse_cmake
@@ -55,4 +58,4 @@ doit "git commit -s -m \"$HPCC_NAME $HPCC_SHORT_TAG Gold\""
 doit "git push $REMOTE $GIT_BRANCH $FORCE"
 
 # tag it
-do_tag
+do_tag

+ 4 - 1
cmake_modules/go_rc.sh

@@ -6,6 +6,9 @@
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 
 . $SCRIPT_DIR/parse_cmake.sh
+if [ -e pom.xml ] ; then
+  . $SCRIPT_DIR/parse_hpcc_pom.sh
+fi
 
 sync_git
 parse_cmake
@@ -68,4 +71,4 @@ doit "git commit -s -m \"$HPCC_NAME $HPCC_SHORT_TAG Release Candidate $HPCC_SEQU
 doit "git push $REMOTE $GIT_BRANCH $FORCE"
 
 # tag it
-do_tag
+do_tag

+ 98 - 0
cmake_modules/parse_hpcc_pom.sh

@@ -0,0 +1,98 @@
+#!/bin/bash
+#
+# Common utilities used by tools for automating tagging and release
+#
+
+#We want any failures to be fatal
+# Depends: maven
+
+set -e
+
+if ! `which mvn 1>/dev/null 2>&1` ; then
+  echo "Maven dependency not located"
+  exit 2
+fi
+
+# overwrite versionfile to pom.xml
+VERSIONFILE=pom.xml
+if [ ! -f $VERSIONFILE ]; then
+  echo "Expected $VERSIONFILE not found"
+  exit 2
+fi
+
+
+# overwrite parse_cmake to target pom files
+# expect ex: 7.6.2-0-SNAPSHOT, 7.6.2-1 (gold release), etc
+# Major.Minor.Point- Sequence if gold, Maturity if rc
+function parse_cmake()
+{
+  HPCC_PROJECT=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)
+  HPCC_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+  HPCC_MAJOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $1};')
+  HPCC_MINOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $2};')
+  HPCC_POINT=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $3};')
+  HPCC_SEQUENCE=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $4};')
+  HPCC_MATURITY=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $5};')
+
+  if ! `echo $HPCC_SEQUENCE | grep -Eq ^[0-9]+$`; then
+    echo "Error: HPCC_SEQUENCE not an Integer"
+    echo "-- possibly on branch using old versioning scheme"
+    exit 2
+  fi
+
+  # translate pom maturity to what go_rc/go_gold understand
+  if [ -z "$HPCC_MATURITY" ] ; then
+    # branch on gold release
+    HPCC_MATURITY=release
+  elif [ "$HPCC_MATURITY" == "SNAPSHOT" ] ; then
+    if (( "$HPCC_POINT" % 2 != 1 )) ; then
+      HPCC_MATURITY=rc
+    else
+      HPCC_MATURITY=closedown
+    fi
+  fi
+
+}
+
+function set_tag()
+{
+    local _prefix=$1
+    local _maturity=$HPCC_MATURITY
+    if [ "$HPCC_MATURITY" == "rc" ] ; then
+      _maturity=SNAPSHOT
+    fi
+    # will keep -release or -SNAPSHOT as maturity for tagging
+    HPCC_SHORT_TAG=${HPCC_MAJOR}.${HPCC_MINOR}.${HPCC_POINT}-${HPCC_SEQUENCE}-${_maturity}
+    HPCC_LONG_TAG=${_prefix}_$HPCC_SHORT_TAG
+}
+
+function update_version_file()
+{
+    # Update the pom.xml file
+    local _new_maturity=$1
+    local _new_point=$2
+    local _new_sequence=$3
+    local _new_minor=$4
+    if [ -z "$_new_minor" ] ; then
+      _new_minor=$HPCC_MINOR
+    fi
+    if [ "$_new_maturity" == "rc" ]; then
+      _new_maturity=-SNAPSHOT
+    elif [ "$_new_maturity" == "closedown" ]; then
+      _new_maturity=-SNAPSHOT
+    else
+      # don't set for non-snapshots
+      _new_maturity=
+    fi
+    local _v="${HPCC_MAJOR}.${_new_minor}.${_new_point}-${_new_sequence}${_new_maturity}"
+    local mvn_version_update_cmd="mvn versions:set -DnewVersion=$_v"
+    if [ -n "$VERBOSE" ] ; then
+      echo  "$mvn_version_update_cmd"
+    fi
+    if [ -z "$DRYRUN" ] ; then 
+      eval "$mvn_version_update_cmd"
+      find . -name 'pom.xml' | xargs git add
+    else
+      echo  "Update to $_v"
+    fi
+}