From 0b882951b7f2d2bb25a2d78db4bb84134a86216c Mon Sep 17 00:00:00 2001
From: Zachary T Welch <zw@superlucidity.net>
Date: Thu, 22 Oct 2009 03:04:08 -0700
Subject: [PATCH] Add script to test the release process.

Runs the release.sh script in a freshly cloned repository, charting
one hypothetical future of OpenOCD's lineage.
---
 tools/release/test.sh | 121 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)
 create mode 100755 tools/release/test.sh

diff --git a/tools/release/test.sh b/tools/release/test.sh
new file mode 100755
index 000000000..1f321e0f5
--- /dev/null
+++ b/tools/release/test.sh
@@ -0,0 +1,121 @@
+#!/bin/sh -e
+
+SRC="$1"
+if [ "${SRC}" ]; then
+	shift
+else
+	SRC="${0%%/*}"
+fi
+if [ ! -d "${SRC}/.git" ]; then
+	echo "'${SRC}' is not a git repository"
+	exit 1
+fi
+
+DST="$1"
+[ "${DST}" ] || DST="release-${SRC}"
+
+export RELEASE_FAST=yes
+
+cat <<EOF
+Starting test release clone process:
+   from: '${SRC}'
+     to: '${DST}'
+This will destroy any contents in '${DST}'.
+EOF
+echo -n "Press Control-C to abort in "
+for i in $(seq 5 -1 1); do echo -n "$i "; sleep 1; done
+echo "go!"
+
+rm -rf "${DST}"
+git clone "${SRC}" "${DST}"
+
+cd "${DST}"
+#     TAG+RELEASE     NEW BRANCH (w/ -dev)
+# 	0.3.0 		0.4.0-rc0
+tools/release.sh release --next='minor' --start-rc
+
+git checkout -q "v0.3.0"
+# 	<none>		0.3.1
+tools/release.sh branch --next='micro'
+# 	0.3.1 		0.3.2
+tools/release.sh release --next='micro'
+
+git checkout "v0.4.0-rc0-dev"
+# 	0.4.0-rc0	0.4.0-rc1
+tools/release.sh release --next='rc'
+# 	0.4.0		1.0.0-rc0
+tools/release.sh release --next='major' --final --start-rc
+
+git checkout -q "v0.4.0"
+# 	<none>		0.4.1
+tools/release.sh branch --next='micro'
+# 	0.4.1 		0.4.2
+tools/release.sh release --next='micro'
+
+git checkout "v1.0.0-rc0-dev"
+# 	1.0.0-rc0	1.0.0-rc1
+tools/release.sh release --next='rc'
+# 	1.0.0		1.1.0-rc0
+tools/release.sh release --next='minor' --final --start-rc
+
+git checkout -q "v1.0.0"
+# 	<none>		1.0.1
+tools/release.sh branch --next='micro'
+# 	1.0.1 		1.0.2
+tools/release.sh release --next='micro'
+
+git checkout "v1.1.0-rc0-dev"
+# 	1.1.0-rc0	1.1.0-rc1
+tools/release.sh release --next='rc'
+# 	1.1.0		1.2.0
+tools/release.sh release --next='minor' --final --start-rc
+
+git checkout -q "v1.0.0"
+tools/release.sh branch --next='major' --start-rc
+
+# 	<none>		2.0.0-rc0
+git checkout "v2.0.0-rc0-dev"
+# 	2.0.0-rc0	2.0.0-rc1
+tools/release.sh release --next='rc'
+# 	2.0.0-rc1	2.0.0-rc2
+tools/release.sh release --next='rc'
+# 	2.0.0		2.1.0-rc0
+tools/release.sh release --next='minor' --final --start-rc
+
+git checkout -q "v1.1.0"
+# 	<none>		1.1.1
+tools/release.sh branch --next='micro'
+# 	1.1.1 		1.1.2
+tools/release.sh release --next='micro'
+
+git checkout -q "v2.0.0"
+# 	<none>		2.0.0
+tools/release.sh branch --next='micro'
+# 	2.0.1		2.0.2
+tools/release.sh release --next='micro'
+
+git checkout "v1.2.0-rc0-dev"
+# 	1.2.0-rc0	1.2.0-rc1
+tools/release.sh release --next='rc'
+# 	1.2.0		1.3.0-rc0
+tools/release.sh release --next='micro' --final
+
+git checkout "v2.1.0-rc0-dev"
+# 	2.1.0-rc0	2.1.0-rc1
+tools/release.sh release --next='rc'
+# 	2.1.0-rc1	2.1.0-rc2
+tools/release.sh release --next='rc'
+# 	2.1.0		2.2.0-rc0
+tools/release.sh release --next='minor' --final --start-rc
+
+git checkout -q "v2.1.0"
+# 	<none>		2.1.1
+tools/release.sh branch --next='micro'
+# 	2.1.1		2.1.2
+tools/release.sh release --next='micro'
+
+git checkout "v2.2.0-rc0-dev"
+# 	2.2.0-rc0	2.2.0-rc1
+tools/release.sh release --next='rc'
+
+gitk --all
-- 
GitLab