diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000000000000000000000000000000000000..6cb3973d0e3d12cd0d3323a3f250794c7d8d8350
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+current=`grep -P "version\": \"\d+.\d+.\d+(\w*)" package.json | grep -oP "\d+.\d+.\d+(\w*)"`
+echo "Current version: $current"
+
+if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ ]]; then
+  echo "build $2"
+  case "$1" in
+    rel|pre)
+      # Change the version in package.json and test file
+      sed -i "s/version\": \"$current/version\": \"$2/g" package.json
+      sed -i "s/version').equal('.*/version').equal('$2');/g" test/integration/branches.js
+      if [[ "$1" =~ ^rel$ ]]; then
+        # This is RELEASE: change the version in public installer + add the RELEASE flag
+        sed -i "s/echo \"v.*\"/echo \"v$2\"/g" install.sh
+        sed -i "s/.*prerelease: true/#  prerelease: true/g" .travis.yml
+      fi
+      if [[ "$1" =~ ^pre$ ]]; then
+        # This is RELEASE: just change the RELEASE flag to PRERELEASE
+        sed -i "s/#  prerelease: true/  prerelease: true/g" .travis.yml
+      fi
+      ;;
+    *)
+      echo "No task given"
+      ;;
+  esac
+
+  # Commit
+  git reset HEAD
+  case "$1" in
+    rel)
+      git add package.json .travis.yml test/integration/branches.js install.sh
+      ;;
+    pre)
+      git add package.json .travis.yml test/integration/branches.js
+      ;;
+  esac
+  git commit -m "v$2"
+else
+  echo "Wrong version format"
+fi