Mostly forked from - https://gist.github.com/domenic/ec8b0fc8ab45f39403dd but there are some other things in here
In the root of your project, create a deploy script. I decided to place mine in ./bin/deploy.sh
but you could put in any where
deploy.sh
#!/bin/bash
set -e
# clear and re-create the out directory
rm -rf dist || exit 0;
mkdir dist;
# build
npm run build
cp CNAME dist/CNAME
# deploy
# go to the out directory and create a *new* Git repo
cd dist
git init
# inside this git repo we'll pretend to be a new user
git config user.name "Travis CI"
git config user.email "{{ YOUR GIT EMAIL OR YOUR BOT EMAIL! }}"
# The first and only commit to this new Git repo contains all the
# files present with the commit message "Deploy to GitHub Pages".
git add .
git commit -m "Deploy to GitHub Pages"
# Force push from the current repo's master branch to the remote
# repo's gh-pages branch. (All previous history on the gh-pages branch
# will be lost, since we are overwriting it.) We redirect any output to
# /dev/null to hide any sensitive credential data that might otherwise be exposed.
git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages > /dev/null 2>&1