How exactly do I automatically deploy my Mkdocs documentation in Travis CI?
Trigger Travis CI builds using the API V3 by sending a POST request to /repo/{slug|id}/requests : Get an API token from your Travis CI settings page. You'll need the token to authenticate most of these API requests.
Configuration. Travis CI is configured by adding a file named . travis. yml , which is a YAML format text file, to the root directory of the repository.
Travis CI is a cloud-based CI service that builds and tests your projects hosted on GitHub. It would trigger a build process to validate the build and report any failures for every commit made. It fetches the commands from a . travis.
Here's how to automatically deploy your mkdocs document. Simply follow the 3 steps below.
Simply insert the following code snippets into their respective locations in your .travis.yml
configuration file:
language: python # Set the build language to Python
python: 3.8 # Set the version of Python to use
branches: master # Set the branch to build from
install:
- pip install mkdocs # Install the required dependencies
script: true # Skip script (Don't use this if one already exists)
before_deploy:
- mkdocs build --verbose --clean --strict # Build a local version of the docs
deploy: # Deploy documentation to Github in the gh_pages branch
provider: pages
skip_cleanup: true
github_token: $github_token
local_dir: site
on:
branch: master
If you are using a mkdocs theme that is not mkdocs
or readthedocs
then follow the following steps to install it:
Scenario 1: The theme is installable via pip (such as mkdocs-material)
pip install mkdocs
with the other packages you need to install for example with mkdocs-material
it would be pip install mkdocs mkdocs-material pymdown-extensions pygments
Scenario 2: The theme is not installable via pip (such as docskimmer)
Remove the --strict
argument from mkdocs build --verbose --clean --strict
to suppress a possible error from using theme not installable via pip.
Add the code required to set up the theme in the before_deploy
section, above mkdocs build --verbose --clean
The code in the before_deploy
section would look like this for docskimmer:
before_deploy:
- git clone https://github.com/hfagerlund/mkdocs-docskimmer.git # Clone the repo hosting the code
- cp -r $PWD/mkdocs-docskimmer/mkdocs_docskimmer . # Copy the required code to the repo root
- cp -r $PWD/mkdocs-docskimmer/mkdocs_docskimmer/. ./docs # Copy the required code to the docs folder
- mkdocs build --verbose --clean # Build a local version of the docs
Installation of themes not available via pip may vary.
The final step is to tell Travis CI the credentials required to sign in to your GitHub account to push the changes:
public_repo
scope, skip to step 11Token description
, choose a name for your token - it could be anything; I'd name it something like Travis CI
as you can reuse the token for as many repositories as you like.public_repo
and repo_deployment
scope/permissionGenerate token
at the bottom of the pagegithub_token
<THE TOKEN YOU JUST GENERATED>
No
add
You're done! Please feel free to ask me any questions in the comments.
Also, if the method stops working or doesn't work, PLEASE tell me in the comments and I will fix it ASAP.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With