Github Pages is a solution to host static websites directly in your Github repository by pushing site files to
gh-pages branch.I use this feature to host this blog.It is free and very useful for your own site or open source documentation.Here is a tutorial of how to publish Gatsby website with travis.
Make sure to have a public github repository with your static site and a travis-ci.org account.
Define basic travis-ci configuration to build and push you site on
gh-pages page on each new commit on master.Add
.travis-ci.yml file in the root directory of your git project.
Edit this file with your build configuration.
# This is the required part containing the build step for gatsby language: node_js node_js: - '12' cache: yarn: true directories: - public - .cache script: - yarn build # Generate static HTML files # Here is the magic part deploy: # Use Github pages deploy process provider: pages # Keep builded pages skip-cleanup: true # Directory where your generated files are located local_dir: public # Github security/auth token github-token: $GITHUB_TOKEN # Incremental commit to keep old build/files from previous deployments keep-history: true # Git branch on which it should deploy (master, gh-pages, foo...) target_branch: gh-pages on: # Which branch on commit/push will trigger deployment branch: master
Take a look at all deploy providers available with travis.
Generate a Github token on this page with repository permission and keep it safe.
Toggle your github repository to travis listed project on this page.Then on your project travis page, go to
More options > Settings.
Environment Variables section, add variable named
GITHUB_TOKEN and use generated token from previous step.
In your github repository settings page, be sure to activate github pages feature in
Github Pages section.
Save it, and now it is done !You are good to go, your next commit pushed on master branch will trigger deployment of your site.
Hope this will help you configure travis deployment for your project.
If you liked it, I’ll try to do the same tutorial with Github Action.