diff --git a/.travis.yml b/.travis.yml
index 7e3b4f23a6f05a9b7ff3c3d246f57ce0df836a38..e429117fd18b8a495eb7e2b757292c366f68cbcf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,7 @@ env:
   - NODE_ENV=production
   - SMOKE_URL=https://llk.github.io/scratch-gui/$TRAVIS_PULL_REQUEST_BRANCH
   - NPM_TAG=latest
+  - RELEASE_VERSION="0.1.0-prerelease.$(date +'%Y%m%d%H%M%S')"
 cache:
   directories:
   - node_modules
@@ -22,7 +23,7 @@ script:
 before_deploy:
 - >
   if [ -z "$BEFORE_DEPLOY_RAN" ]; then
-    npm --no-git-tag-version version 0.1.0-prerelease.$(date +%Y%m%d%H%M%S)
+    npm --no-git-tag-version version $RELEASE_VERSION
     if [ "$TRAVIS_BRANCH" == "master" ]; then export NPM_TAG=stable; fi
     git config --global user.email $(git log --pretty=format:"%ae" -n1)
     git config --global user.name $(git log --pretty=format:"%an" -n1)
@@ -40,6 +41,15 @@ deploy:
   email: $NPM_EMAIL
   api_key: $NPM_TOKEN
   tag: $NPM_TAG
+- provider: script
+  on:
+    branch:
+    - master
+    - develop
+    - smoke
+    condition: $TRAVIS_EVENT_TYPE != cron
+  skip_cleanup: true
+  script: if npm info scratch-gui | grep -q $RELEASE_VERSION; then git tag $RELEASE_VERSION && git push https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git $RELEASE_VERSION; fi
 - provider: s3
   on:
     branch: