Auto-build an Mkdocs documentation in Travis CI

Richie Bendall :

How exactly do I automatically deploy my Mkdocs documentation in Travis CI?

Richie Bendall :

Here's how to automatically deploy your mkdocs document. Simply follow the 3 steps below.

Step 1

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.6 # 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

Step 2

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)

    1. Append 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)

    1. Remove the --strict argument from mkdocs build --verbose --clean --strict to suppress a possible error from using theme not installable via pip.

    2. 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.

Step 3

The final step is to tell Travis CI the credentials required to sign in to your GitHub account to push the changes:

  1. If you've already set up a Personal Access token with the public_repo scope, skip to step 11
  2. Go to this URL. If it loads, skip to step 7. Otherwise, continue these instructions as usual.
  3. Go to the settings of your Github account
  4. Click Developer settings
  5. Click Personal access tokens
  6. Click Generate new token
  7. You may need to enter your GitHub password to authorise the creation
  8. Under Token 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.
  9. Enable the public_repo scope/permission
  10. Click Generate token at the bottom of the page
  11. Go to the settings of the Travis CI repository which you want to build the Mkdocs documentation for
  12. Create an environmental variable with the following settings:
    • Name: github_token
    • Value: <THE TOKEN YOU JUST GENERATED>
    • Display value in build log: No
  13. Click add

Afterword

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.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive