GitHub Pages doesn't support jekyll-archives
now PR. We can use Travis CI to build it and push to gh-pages
branch.
There is already some gists talks about this topic using bash. However, Travis now support deploy
in .travis.yml
, which is super easy to set up. (Deploying to GitHub Pages is experimental now [2018.07.25])
Here is an example.
language: ruby
cache: bundler
sudo: false
rvm: 2.5
install:
- gem install bundler
- bundle install
script:
- bundle exec jekyll build
after_success:
- touch ./_site/.nojekyll
deploy:
provider: pages
skip-cleanup: true
keep-history: true
on:
branch: master
github-token: $GITHUB_TOKEN
local-dir: _site
committer-from-gh: true
For the details about deploy
, check Travis docs .
For now, you have already done most of the work.
To push files to your repo@gh-pages
, Travis needs your authority. This means you need to offer a personal GitHub token.
You can choose to set this in travis-ci.org/repo/settings
as an environment variable or pass it to .travis.yml
as an encrypted variable.
Open https://github.com/settings/tokens and click Generate new token
. Just select repo
is enough. You can get details from GitHub Help .
This can be set in your repo's travis page, More options -> settings
, or just add /settings
to the URL.
The variable name should be the same with github-token
in .travis.yml
.
Details can be found in Travis Docs .
Deploying is triggered depending on your repo's travis settings.