parse_hpcc_pom.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/bin/bash
  2. #
  3. # Common utilities used by tools for automating tagging and release
  4. #
  5. #We want any failures to be fatal
  6. # Depends: maven
  7. set -e
  8. if ! `which mvn 1>/dev/null 2>&1` ; then
  9. echo "Maven dependency not located"
  10. exit 2
  11. fi
  12. # overwrite versionfile to pom.xml
  13. VERSIONFILE=pom.xml
  14. if [ ! -f $VERSIONFILE ]; then
  15. echo "Expected $VERSIONFILE not found"
  16. exit 2
  17. fi
  18. # overwrite parse_cmake to target pom files
  19. # expect ex: 7.6.2-0-SNAPSHOT, 7.6.2-1 (gold release), etc
  20. # Major.Minor.Point- Sequence if gold, Maturity if rc
  21. function parse_cmake()
  22. {
  23. HPCC_PROJECT=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)
  24. HPCC_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
  25. HPCC_MAJOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $1};')
  26. HPCC_MINOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $2};')
  27. HPCC_POINT=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $3};')
  28. HPCC_SEQUENCE=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $4};')
  29. HPCC_MATURITY=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $5};')
  30. if ! `echo $HPCC_SEQUENCE | grep -Eq ^[0-9]+$`; then
  31. echo "Error: HPCC_SEQUENCE not an Integer"
  32. echo "-- possibly on branch using old versioning scheme"
  33. exit 2
  34. fi
  35. # translate pom maturity to what go_rc/go_gold understand
  36. if [ -z "$HPCC_MATURITY" ] ; then
  37. # branch on gold release
  38. HPCC_MATURITY=release
  39. elif [ "$HPCC_MATURITY" == "SNAPSHOT" ] ; then
  40. if (( "$HPCC_POINT" % 2 != 1 )) ; then
  41. HPCC_MATURITY=rc
  42. else
  43. HPCC_MATURITY=closedown
  44. fi
  45. fi
  46. }
  47. function set_tag()
  48. {
  49. local _prefix=$1
  50. local _maturity=$HPCC_MATURITY
  51. if [ "$HPCC_MATURITY" == "rc" ] ; then
  52. _maturity=SNAPSHOT
  53. fi
  54. # will keep -release or -SNAPSHOT as maturity for tagging
  55. HPCC_SHORT_TAG=${HPCC_MAJOR}.${HPCC_MINOR}.${HPCC_POINT}-${HPCC_SEQUENCE}-${_maturity}
  56. HPCC_LONG_TAG=${_prefix}_$HPCC_SHORT_TAG
  57. }
  58. function update_version_file()
  59. {
  60. # Update the pom.xml file
  61. local _new_maturity=$1
  62. local _new_point=$2
  63. local _new_sequence=$3
  64. local _new_minor=$4
  65. if [ -z "$_new_minor" ] ; then
  66. _new_minor=$HPCC_MINOR
  67. fi
  68. if [ "$_new_maturity" == "rc" ]; then
  69. _new_maturity=-SNAPSHOT
  70. elif [ "$_new_maturity" == "closedown" ]; then
  71. _new_maturity=-SNAPSHOT
  72. else
  73. # don't set for non-snapshots
  74. _new_maturity=
  75. fi
  76. local _v="${HPCC_MAJOR}.${_new_minor}.${_new_point}-${_new_sequence}${_new_maturity}"
  77. local mvn_version_update_cmd="mvn versions:set -DnewVersion=$_v"
  78. if [ -n "$VERBOSE" ] ; then
  79. echo "$mvn_version_update_cmd"
  80. fi
  81. if [ -z "$DRYRUN" ] ; then
  82. eval "$mvn_version_update_cmd"
  83. find . -name 'pom.xml' | xargs git add
  84. else
  85. echo "Update to $_v"
  86. fi
  87. }