aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <me@robin-krahl.de>2016-02-21 01:01:34 +0100
committerRobin Krahl <me@robin-krahl.de>2016-02-21 01:01:34 +0100
commit3b5a208fa523f17039f55b9838ea9ad4a923811a (patch)
treec1643459868a0a41597d2d88d941061a0663031c
parente6db8d7cb75b1a126acf050ab27d91ffe5e18ae5 (diff)
downloadLrMediaWiki-3b5a208fa523f17039f55b9838ea9ad4a923811a.tar.gz
LrMediaWiki-3b5a208fa523f17039f55b9838ea9ad4a923811a.tar.bz2
scripts: add release.sh scriptHEADmaster
Add the release.sh script that prepares and publishes a release of LrMediaWiki. The script assumes that the corresponding release has already been created on GitHub. It bundles the required files, creates archives and checksums and uploads them to GitHub.
-rwxr-xr-xscripts/release.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/scripts/release.sh b/scripts/release.sh
new file mode 100755
index 0000000..e60890c
--- /dev/null
+++ b/scripts/release.sh
@@ -0,0 +1,61 @@
+#! /bin/bash
+# Copyright (C) 2016 Robin Krahl <robin.krahl@wikipedia.de>
+#
+# This script bundles LrMediaWiki and uploads the bundled plugin to GitHub.
+# You have to pass the version number (e. g. 1.0). The script will upload the
+# bundled plugin to the release with the tag v<VERSION>, e. g. v1.0. This
+# script requires that the environment variable GITHUB_TOKEN is set to a valid
+# token for the repository to release a version for.
+#
+# Dependencies:
+# - github-release: https://github.com/aktau/github-release
+
+if [[ "$#" -ne 1 ]]
+then
+ echo "USAGE: ./release.sh <version>"
+ echo " version: the semantic version name, e. g. 1.0"
+
+ if [[ "$#" -gt 1 ]]
+ then
+ echo "1 argument required, $# given" >&2
+ exit 1
+ else
+ exit 0
+ fi
+fi
+
+# user input
+VERSION="$1"
+# github-release settings
+GITHUB_USER="robinkrahl"
+GITHUB_REPO="LrMediaWiki"
+# paths and file names
+TMPDIR=`mktemp -d`
+LRDEVPLUGIN="mediawiki.lrdevplugin"
+LRPLUGIN="mediawiki.lrplugin"
+TAG="v$1"
+ARCHIVE_BASE_NAME="lrmediawiki-$VERSION"
+ARCHIVE_NAME_ZIP="$ARCHIVE_BASE_NAME.zip"
+ARCHIVE_NAME_TAR_GZ="$ARCHIVE_BASE_NAME.tar.gz"
+CHECKSUM_NAME="checksums.md5"
+
+# copy required files to the temporary direction
+cp -r "$LRDEVPLUGIN" "$TMPDIR/$LRPLUGIN"
+cp *.md *.txt "$TMPDIR/$LRPLUGIN"
+
+cd $TMPDIR
+
+# create archives
+zip -r "$ARCHIVE_NAME_ZIP" "$LRPLUGIN"
+tar -czf "$ARCHIVE_NAME_TAR_GZ" "$LRPLUGIN"
+# create checksums
+md5sum "$ARCHIVE_NAME_ZIP" "$ARCHIVE_NAME_TAR_GZ" > "$CHECKSUM_NAME"
+
+# upload
+for FILE in "$ARCHIVE_NAME_ZIP" "$ARCHIVE_NAME_TAR_GZ" "$CHECKSUM_NAME"
+do
+ github-release upload --tag "$TAG" --name "$FILE" --file "$FILE" --user "$GITHUB_USER" --repo "$GITHUB_REPO"
+done
+
+rm -r "$TMPDIR"
+echo "DONE"