While the aim is to get automatic deploys, you'll need to do some preparation and configuration once:
Enable on Travis
- Go to your Travis profile (create an account first if you don't have one yet).
- Find your repository (you may need to click "sync account" first).
- Enable Travis for your repository (use the switch).
- Go to the settings of your repository on Travis. Enable "Build only if .travis.yml is present", "Build pushes" and "Build pull requests".
To be able to automatically deploy to GitHub Pages, you first need to manually create a
git clone github.com/user/repository.git
cd repository git checkout --orphan gh-pages git rm -rf .
echo "Placeholder page" > index.html git add index.html git commit -a -m "Placeholder page" git push origin gh-pages
GH_USER:with the username the repository belongs to.
GH_REPO:with the name of the repository this script is in.
Set encrypted access token
Travis CI needs to be able to push to the
gh-pages branch of your repository. In order to give Travis access, you need
to create a personal access token on GitHub with repo scope.
To ensure only Travis is able to use the token, you need to encrypt it. For this you need to install the Travis Command Line Client:
gem install travis
Now you can encrypt the token and add it directly to
.travis.yml as an environment global named
travis encrypt -r user/repo GH_TOKEN=yournewpersonalaccesstoken --add env.global
.travis.yml, you should see an encrypted string behind
Adjust pre-deploy scripts
.travis.yml is pre-configured to run
npm run build and
npm test before each deploy.
These scripts are configured with dummy scripts inside of
Only if these scripts are successful, the distribution is actually deployed.
You should adjust these scripts or change the configuration to meet your project's needs.
Adjust deploy script
The deploy script is pre-configured to deploy everything inside the
dist/ directory to the root of the
If you have a different setup you need to change this inside
Enjoy automated builds
Now each push to the
master branch will result in a deploy to GitHub Pages on every successful build.