aboutsummaryrefslogtreecommitdiff
path: root/release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'release.sh')
-rwxr-xr-xrelease.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000..7346aa2
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,34 @@
+#! /bin/bash -e
+#
+# Build, test, and release Scala Async.
+#
+# Requires credentials:
+#
+# % cat ~/.sbt/0.13/publish.sbt
+# credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "<user>", "<pass>")
+#
+# Also requires the sbt-pgp plugin installed globally to provide the `publishSigned` command.
+#
+# % cat ~/.sbt/0.13/plugins/gpg.sbt
+# addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.1")
+
+die () {
+ echo "$@"
+ exit 1
+}
+
+CHECK=";clean;test;publishLocal"
+RELEASE=";clean;test;publishSigned"
+VERSION=`gsed -rn 's/version :=.*"(.+).*"/\1/p' build.sbt`
+[[ -n "$(git status --porcelain)" ]] && die "working directory is not clean!"
+
+sbt $CHECK
+sbt $RELEASE
+
+cat <<EOM
+Released! For non-snapshot releases:
+ - tag: git tag -s -a v${VERSION}_2.11 -m "scala-async $VERSION for Scala 2.11"
+ - push tag: git push origin v${VERSION}_2.11
+ - close and release the staging repository: https://oss.sonatype.org
+ - change the version number in build.sbt to a suitable -SNAPSHOT version
+EOM \ No newline at end of file