go_gold.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #!/bin/bash
  2. #
  3. # Automatically tag an existing release candidate build as gold
  4. #
  5. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
  6. . $SCRIPT_DIR/parse_cmake.sh
  7. . $SCRIPT_DIR/parse_hpcc_chart.sh
  8. if [ -e pom.xml ] ; then
  9. . $SCRIPT_DIR/parse_hpcc_pom.sh
  10. fi
  11. sync_git
  12. parse_cmake
  13. NEW_SEQUENCE=1
  14. if [ "$HPCC_MATURITY" != "rc" ] ; then
  15. if [ "$HPCC_MATURITY" = "release" ] ; then
  16. NEW_SEQUENCE=$((HPCC_SEQUENCE+1))
  17. if [ -z "$RETAG" ] ; then
  18. echo "Current version is already at release level. Specify --retag to create $HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT-$NEW_SEQUENCE"
  19. exit 2
  20. fi
  21. else
  22. echo "Current version should be at rc level to go gold"
  23. exit 2
  24. fi
  25. fi
  26. if (( "$HPCC_POINT" % 2 == 1 )) ; then
  27. echo "Current version should have even point version to go gold"
  28. exit 2
  29. fi
  30. if [ "$GIT_BRANCH" != "candidate-$HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT" ]; then
  31. echo "Current branch should be candidate-$HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT"
  32. exit 2
  33. fi
  34. for f in ${HPCC_PROJECT}; do
  35. set_tag $f
  36. if [ $(git rev-parse HEAD) != $(git rev-parse $HPCC_LONG_TAG) ] ; then
  37. if [ -z "$IGNORE" ] ; then
  38. git diff $HPCC_LONG_TAG
  39. echo "There are changes on this branch since $HPCC_LONG_TAG. Use --ignore if you still want to tag Gold"
  40. exit 2
  41. fi
  42. fi
  43. done
  44. update_version_file release $HPCC_POINT $NEW_SEQUENCE
  45. if [ -e helm/hpcc/Chart.yaml ] ; then
  46. update_chart_file helm/hpcc/Chart.yaml release $HPCC_POINT $NEW_SEQUENCE
  47. doit "git add helm/hpcc/Chart.yaml"
  48. for f in helm/hpcc/templates/* ; do
  49. update_chart_file $f release $HPCC_POINT $NEW_SEQUENCE
  50. if [ "$CHART_CHANGED" != "0" ] ; then
  51. doit "git add $f"
  52. fi
  53. done
  54. fi
  55. HPCC_MATURITY=release
  56. HPCC_SEQUENCE=$NEW_SEQUENCE
  57. set_tag
  58. # Commit the change
  59. doit "git add $VERSIONFILE"
  60. doit "git commit -s -m \"$HPCC_NAME $HPCC_SHORT_TAG-$HPCC_SEQUENCE Gold\""
  61. doit "git push $REMOTE $GIT_BRANCH $FORCE"
  62. # tag it
  63. do_tag
  64. if [ -e helm/hpcc/Chart.yaml ] ; then
  65. # We publish any tagged version of helm chart to the helm-chart repo
  66. # but only copy helm chart sources across for "latest stable" version
  67. HPCC_DIR="$( pwd )"
  68. doit2 "pushd ../helm-chart 2>&1 > /dev/null"
  69. doit "git fetch $REMOTE"
  70. doit "git checkout master"
  71. doit "git merge --ff-only $REMOTE/master"
  72. doit "git submodule update --init --recursive"
  73. HPCC_PROJECTS=hpcc-helm
  74. HPCC_NAME=HPCC
  75. if [[ "$HPCC_MAJOR" == "8" ]] && [[ "$HPCC_MINOR" == "4" ]] ; then
  76. doit "rm -rf ./helm"
  77. doit "cp -rf $HPCC_DIR/helm ./helm"
  78. doit "rm -f ./helm/*.bak"
  79. doit "git add -A ./helm"
  80. fi
  81. doit2 "cd docs"
  82. for f in `find ${HPCC_DIR}/helm/examples ${HPCC_DIR}/helm/managed -name Chart.yaml` ; do
  83. doit "helm package ${f%/*}/ --dependency-update"
  84. done
  85. doit "helm package ${HPCC_DIR}/helm/hpcc/"
  86. doit "helm repo index . --url https://hpcc-systems.github.io/helm-chart"
  87. doit "git add *.tgz"
  88. doit "git commit -a -s -m \"$HPCC_NAME Helm Charts $HPCC_SHORT_TAG-$HPCC_SEQUENCE\""
  89. if [[ "$HPCC_MAJOR" == "8" ]] && [[ "$HPCC_MINOR" == "2" ]] ; then
  90. doit "git tag $FORCE $HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT && git push $REMOTE $HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT $FORCE"
  91. fi
  92. doit "git push $REMOTE master $FORCE"
  93. doit2 "popd 2>&1 > /dev/null"
  94. fi