Skip to content

Github action to build an MkDocs site and upload to S3

License

Notifications You must be signed in to change notification settings

thomasattree/mkdocs2S3

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github action to build an mkdocs site and sync it to S3 🚀

This is a very simple action to make publishing a static mkdocs site even easier.

Usage

workflow.yml example

To use this action within your own repository, place the following example in your .github/workflows directory.

name: DeployToS3

on:
  push:
    branches:
    - master

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: thomasattree/mkdocs2S3@master
      with:
        args: --acl public-read --follow-symlinks --delete
      env:
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: 'eu-west-1'   # optional: defaults to us-east-1
        SOURCE_DIR: 'site'      # optional: defaults to entire repository

The s3 command uses the raw AWS CLI so any args supported within the CLI can be passed through in the with statement above. If you are going to use the above example verbatim, be warned --delete permanently deletes files in the S3 bucket that are not present in the latest version of your build. The above example will build and deploy your site on any push to master. This means your public site in S3 should always be up to date with your Github repository mkdocs docs directory.

Environment variables

The action requires at least AWS_S3_BUCKET, AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY. Store these as Github secrets and not statically typed in your configuration.

Key Value Required Default
'AWS_S3_BUCKET' Name of your S3 bucket eg.my-bucket Yes N/A
'AWS_ACCESS_KEY_ID' Your AWS IAM access key. Store this as a Github secret Yes N/A
'AWS_SECRET_ACCESS_KEY' Your AWS IAM secret key. Store this as a Github secret Yes N/A
'AWS_REGION' The region of your S3 bucket eg. us-west-2 No eu-west-1 (Dublin)
'SOURCE_DIR' The name of the directory you want to sync with S3. Mkdocs by default builds site files in a directory named site No .

License

This project is distributed under the MIT license.

About

Github action to build an MkDocs site and upload to S3

Resources

License

Stars

Watchers

Forks

Packages

No packages published