aboutsummaryrefslogtreecommitdiff
path: root/scripts
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 /scripts
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.
Diffstat (limited to 'scripts')
-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"