| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | #!/bin/sh
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Cut a buildah release.  Usage: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   $ hack/release.sh <version> <next-version> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # For example: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   $ hack/release.sh 1.2.3 1.3.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # for "I'm cutting 1.2.3, and want to use 1.3.0-dev for future work". | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | VERSION="$1" | 
					
						
							|  |  |  | NEXT_VERSION="$2" | 
					
						
							|  |  |  | DATE=$(date '+%Y-%m-%d') | 
					
						
							|  |  |  | LAST_TAG=$(git describe --tags --abbrev=0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | write_go_version() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	LOCAL_VERSION="$1" | 
					
						
							| 
									
										
										
										
											2021-03-26 01:17:33 +08:00
										 |  |  | 	sed -i "s/^\(.*Version = \"\).*/\1${LOCAL_VERSION}\"/" define/types.go | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | write_makefile_epoch() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	LOCAL_EPOCH="$1" | 
					
						
							|  |  |  | 	sed -i "s/^\(EPOCH_TEST_COMMIT ?= \).*/\1${LOCAL_EPOCH}/" Makefile | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | write_changelog() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	echo "- Changelog for v${VERSION} (${DATE})" >.changelog.txt && | 
					
						
							|  |  |  | 	git log --no-merges --format='  * %s' "${LAST_TAG}..HEAD" >>.changelog.txt && | 
					
						
							|  |  |  | 	echo >>.changelog.txt && | 
					
						
							|  |  |  | 	cat changelog.txt >>.changelog.txt && | 
					
						
							|  |  |  | 	mv -f .changelog.txt changelog.txt | 
					
						
							| 
									
										
										
										
											2021-09-14 04:36:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	echo "
 | 
					
						
							|  |  |  | ## v${VERSION} (${DATE}) | 
					
						
							|  |  |  | " >.CHANGELOG.md &&
 | 
					
						
							|  |  |  | 	git log --no-merges --format='    %s' "${LAST_TAG}..HEAD" >>.CHANGELOG.md && | 
					
						
							|  |  |  | 	sed -i -e '/# Changelog/r .CHANGELOG.md'  CHANGELOG.md && | 
					
						
							|  |  |  | 	rm -f .CHANGELOG.md | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | release_commit() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	write_go_version "${VERSION}" && | 
					
						
							|  |  |  | 	write_changelog && | 
					
						
							| 
									
										
										
										
											2021-09-14 04:36:55 +08:00
										 |  |  | 	git commit -asm "Bump to v${VERSION}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [NO TESTS NEEDED] | 
					
						
							|  |  |  | "
 | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dev_version_commit() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	write_go_version "${NEXT_VERSION}-dev" && | 
					
						
							| 
									
										
										
										
											2021-09-14 04:36:55 +08:00
										 |  |  | 	git commit -asm "Bump to v${NEXT_VERSION}-dev
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [NO TESTS NEEDED] | 
					
						
							|  |  |  | "
 | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | epoch_commit() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	LOCAL_EPOCH="$1" | 
					
						
							|  |  |  | 	write_makefile_epoch "${LOCAL_EPOCH}" && | 
					
						
							| 
									
										
										
										
											2021-09-14 04:36:55 +08:00
										 |  |  | 	git commit -asm 'Bump gitvalidation epoch | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	[NO TESTS NEEDED] | 
					
						
							|  |  |  | ' | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | git fetch origin && | 
					
						
							| 
									
										
										
										
											2021-09-14 04:36:55 +08:00
										 |  |  | git checkout -b "bump-${VERSION}" origin/main && | 
					
						
							| 
									
										
										
										
											2018-06-09 06:41:00 +08:00
										 |  |  | EPOCH=$(git rev-parse HEAD) && | 
					
						
							|  |  |  | release_commit && | 
					
						
							|  |  |  | git tag -s -m "version ${VERSION}" "v${VERSION}" && | 
					
						
							|  |  |  | dev_version_commit && | 
					
						
							|  |  |  | epoch_commit "${EPOCH}" |