-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Automated Deployment: Travis CI
Here is a sample Travis CI .travis.yml
configuration that ensures mdbook build
and mdbook test
run successfully.
The key to fast CI turnaround times is caching mdbook
installs, so that you aren't compiling mdbook
on every CI run.
language: rust
sudo: false
cache:
- cargo
rust:
- stable
before_script:
- cargo install --vers "^0.4" mdbook
script:
# In case of custom book path: mdbook build path/to/mybook && mdbook test path/to/mybook
- mdbook build && mdbook test
Following these instructions will result in your book being published to GitHub pages after a successful CI run on your repository's master
branch.
First, create a new GitHub "Personal Access Token" with the "public_repo"permissions (or "repo" for private repositories).
Go to your repository's Travis CI settings page and add an environment variable named GITHUB_TOKEN
that is marked secure and not shown in the logs.
Whilst still in your repository's settings page, navigate to Options and change the
Source on GitHub pages to gh-pages
.
Then, append this snippet to your .travis.yml
and update the path to the
book
directory:
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN
local-dir: book # In case of custom book path: path/to/mybook/book
keep-history: false
on:
branch: main
That's it!
Note: Travis has a new dplv2 configuration that is currently in beta. To use this new format, update your .travis.yml
file to:
language: rust
os: linux
dist: xenial
cache:
- cargo
rust:
- stable
before_script:
- cargo install --vers "^0.4" mdbook
script:
# In case of custom book path: mdbook build path/to/mybook && mdbook test path/to/mybook
- mdbook build && mdbook test
deploy:
provider: pages
strategy: git
edge: true
cleanup: false
github-token: $GITHUB_TOKEN
local-dir: book # In case of custom book path: path/to/mybook/book
keep-history: false
on:
branch: main
target_branch: gh-pages