go_gold.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. fi
  49. HPCC_MATURITY=release
  50. HPCC_SEQUENCE=$NEW_SEQUENCE
  51. set_tag
  52. # Commit the change
  53. doit "git add $VERSIONFILE"
  54. doit "git commit -s -m \"$HPCC_NAME $HPCC_SHORT_TAG Gold\""
  55. doit "git push $REMOTE $GIT_BRANCH $FORCE"
  56. # tag it
  57. do_tag
  58. if [ -e helm/hpcc/Chart.yaml ] ; then
  59. # We publish any tagged version of helm chart to the helm-chart repo
  60. # but only copy helm chart sources across for "latest stable" version
  61. HPCC_DIR="$( pwd )"
  62. pushd ../helm-chart 2>&1 > /dev/null
  63. doit "git fetch $REMOTE"
  64. doit "git checkout master"
  65. doit "git merge --ff-only $REMOTE/master"
  66. doit "git submodule update --init --recursive"
  67. HPCC_PROJECTS=hpcc-helm
  68. HPCC_NAME=HPCC
  69. if [[ "$HPCC_MAJOR" == "7" ]] && [[ "$HPCC_MINOR" == "10" ]] ; then
  70. doit "rm -rf ./helm"
  71. doit "cp -rf $HPCC_DIR/helm ./helm"
  72. doit "rm ./helm/hpcc/*.bak"
  73. doit "git add -A ./helm"
  74. fi
  75. cd docs
  76. for f in `find ${HPCC_DIR}/helm/examples -name Chart.yaml` ; do
  77. doit "helm package ${f%/*}/"
  78. done
  79. doit "helm package ${HPCC_DIR}/helm/hpcc/"
  80. doit "helm repo index . --url https://hpcc-systems.github.io/helm-chart"
  81. doit "git add *.tgz"
  82. doit "git commit -a -s -m \"$HPCC_NAME Helm Charts $HPCC_SHORT_TAG\""
  83. if [[ "$HPCC_MAJOR" == "7" ]] && [[ "$HPCC_MINOR" == "10" ]] ; then
  84. doit "git tag $FORCE $HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT && git push $REMOTE $HPCC_MAJOR.$HPCC_MINOR.$HPCC_POINT $FORCE"
  85. fi
  86. doit "git push $REMOTE master $FORCE"
  87. popd
  88. fi