-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #715 from fitzgen/continuous-integration-instructions
user guide: Add instructions for running `mdbook` in CI
- Loading branch information
Showing
2 changed files
with
56 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# Running `mdbook` in Continuous Integration | ||
|
||
While the following examples use Travis CI, their principles should | ||
straightforwardly transfer to other continuous integration providers as well. | ||
|
||
## Ensuring Your Book Builds and Tests Pass | ||
|
||
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. | ||
|
||
```yaml | ||
language: rust | ||
sudo: false | ||
|
||
cache: | ||
- cargo | ||
|
||
rust: | ||
- stable | ||
|
||
before_script: | ||
- (test -x $HOME/.cargo/bin/cargo-install-update || cargo install cargo-update) | ||
- (test -x $HOME/.cargo/bin/mdbook || cargo install --vers "^0.1" mdbook) | ||
- cargo install-update -a | ||
|
||
script: | ||
- cd path/to/mybook && mdbook build && mdbook test | ||
``` | ||
## Deploying Your Book to GitHub Pages | ||
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 oauth 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. | ||
|
||
Then, add this snippet to your `.travis.yml`: | ||
|
||
```yaml | ||
deploy: | ||
provider: pages | ||
skip-cleanup: true | ||
github-token: $GITHUB_TOKEN | ||
local-dir: path/to/mybook/book | ||
keep-history: false | ||
on: | ||
branch: master | ||
``` | ||
|
||
That's it! |