...

Text file src/github.com/datawire/ambassador/v2/releng/prepare-y-bump

Documentation: github.com/datawire/ambassador/v2/releng

     1#!/usr/bin/env bash
     2
     3# This script is meant to be run as `./releng/prepare-y-bump` by a
     4# human Emissary maintainer who is designating that we are starting
     5# work on a new X.Y version.
     6
     7set -euE -o pipefail
     8
     9this_xy=$(git describe --tags --match='v*'|cut -d. -f1,2|sed 's/^v//')
    10next_xy=${this_xy%.*}.$((${this_xy##*.}+1))
    11
    12chart_this_xy=$(git describe --tags --match='chart/v*'|cut -d. -f1,2|sed 's,^chart/v,,')
    13chart_next_xy=${chart_this_xy%.*}.$((${chart_this_xy##*.}+1))
    14
    15refs=()
    16
    17if test -z "$(git for-each-ref "refs/remotes/*/release/v${this_xy}")"; then
    18	# We are on 'master', which will become the next_xy branch,
    19	# and we need to create a 'release/v${this_xy}' branch.
    20
    21	git branch "release/v${this_xy}"
    22	refs+=("release/v${this_xy}")
    23
    24	git branch "${USER}/v${next_xy}"
    25	git switch "${USER}/v${next_xy}"
    26	refs+=("${USER}/v${next_xy}")
    27
    28	echo 'Editing README.md...'
    29	gawk -i inplace \
    30	     -v this_xy="${this_xy}" \
    31	     -v next_xy="${next_xy}" \
    32	     '
    33	       /\[`master`\].*branch for/ {
    34	         print "- [`master`](https://github.com/emissary-ingress/emissary/tree/master) - branch for Emissary-ingress " next_xy ".z work (:heavy_check_mark: upcoming release)"
    35	         print "- [`release/v" this_xy "`](https://github.com/emissary-ingress/emissary/tree/release/v" this_xy ") - branch for Emissary-ingress " this_xy ".z work (:heavy_check_mark: current latest)"
    36	       }
    37	       ! /\[`master`\].*branch for/ { print }
    38	     ' \
    39	     README.md
    40else
    41	# We are on 'release/v{this_xy}' (presumably 'x' is not the
    42	# latest major version), and we need to create a
    43	# 'release/${next_xy}' branch.
    44
    45	git branch "release/v${next_xy}"
    46	git switch "release/v${next_xy}"
    47	refs+=("release/v${next_xy}")
    48
    49	echo 'Editing README.md...'
    50	gawk -i inplace \
    51	     -v next_xy="${next_xy}" \
    52	     '
    53	       /\[`release\/v'"${this_xy/./'\.'}"'`\].*branch for/ {
    54	         print "- [`release/v" next_xy "`](https://github.com/emissary-ingress/emissary/tree/release/v" next_xy ") - branch for Emissary-ingress " next_xy ".z work (:heavy_check_mark: upcoming release)"
    55	       }
    56	       { print }
    57	     ' \
    58	     README.md
    59fi
    60
    61echo 'Editing docs/releaseNotes.yml...'
    62gawk -i inplace \
    63     -v next_xy="${next_xy}" \
    64     '
    65       BEGIN { done=0 }
    66       /^  - version:/ && !done {
    67         print "  - version: " next_xy ".0"
    68         print "    date: '\''TBD'\''"
    69         print "    notes: []"
    70	 print ""
    71	 done=1
    72       } \
    73       { print }
    74     ' \
    75    docs/releaseNotes.yml
    76
    77echo 'Editing charts/emissary-ingress/CHANGELOG.md...'
    78gawk -i inplace \
    79     -v next_xy="${next_xy}" \
    80     -v chart_next_xy="${chart_next_xy}" \
    81     '
    82       BEGIN { done=0 }
    83       /^## v/ && !done {
    84         print "## v" chart_next_xy ".0"
    85         print ""
    86         print "- Upgrade Emissary to v" next_xy ".0 [CHANGELOG](https://github.com/emissary-ingress/emissary/blob/master/CHANGELOG.md)"
    87         print ""
    88	 done=1
    89       }
    90       { print }
    91     ' \
    92     charts/emissary-ingress/CHANGELOG.md
    93
    94echo "Running 'make generate-fast'..."
    95make generate-fast
    96
    97echo
    98echo 'Commiting changes...'
    99git add .
   100git commit --signoff --message="Prepare to work on v${next_xy}.0"
   101
   102echo 'Creating tags...'
   103git tag --annotate --message="Start work on Emissary v${next_xy}.0" "v${next_xy}.0-dev"
   104refs+=("v${next_xy}.0-dev")
   105git tag --annotate --message="Start work on Emissary chart v${chart_next_xy}.0 for Emissary v${next_xy}.0" "chart/v${chart_next_xy}.0-dev"
   106refs+=("chart/v${chart_next_xy}.0-dev")
   107
   108echo
   109echo "======================================================================"
   110echo
   111echo "All done!"
   112echo "Look over the commit that has been made locally;"
   113echo "when you are ready, run the following command to push it:"
   114echo
   115echo "    git push origin ${refs[*]}"
   116echo

View as plain text