GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly. https://github.com/marketplace/actions/github-pages-action
Go to file
peaceiris 5ff5415c45 update: sample 2019-05-26 22:42:48 +09:00
.github Create FUNDING.yml (#2) 2019-05-24 21:40:48 +09:00
images add: action 2019-05-22 06:53:54 +09:00
.dockerignore add: action 2019-05-22 06:53:54 +09:00
Dockerfile add: action 2019-05-22 06:53:54 +09:00
LICENSE add: action 2019-05-22 06:53:54 +09:00
README.md update: sample 2019-05-26 22:42:48 +09:00
entrypoint.sh fix: shellcheck errors 2019-05-26 22:37:08 +09:00

README.md

license release GitHub release date

GitHub Actions for deploying to GitHub Pages with Static Site Generators

GitHub Actions for deploying to GitHub Pages

A GitHub Action to deploy your static site to GitHub Pages with Static Site Generators (Hugo, MkDocs, Gatsby, GitBook, etc.)

Getting started

(1) Add deploy Key

Generate deploy key with the following command.

ssh-keygen -t rsa -b 4096 -C "your@email.com" -f gh-pages -N ""

# You will get 2 files:
#   gh-pages.pub (public key)
#   gh-pages     (private key)

Next, Go to Repository Settings

  • Go to Deploy Keys and add your public key with the "Allow write access"
  • Go to Secrets and add your private key as ACTIONS_DEPLOY_KEY

(2) Create main.workflow

An example with Hugo action.

workflow "GitHub Pages" {
  on = "push"
  resolves = ["deploy"]
}

action "is-branch-master" {
  uses = "actions/bin/filter@master"
  args = "branch master"
}

action "build" {
  needs = "is-branch-master"
  uses = "peaceiris/actions-hugo@v0.55.6"
  args = ["--gc", "--minify", "--cleanDestinationDir"]
}

action "deploy" {
  needs = "build"
  uses = "peaceiris/actions-gh-pages@v1.0.1"
  env = {
    PUBLISH_DIR = "./public"
    PUBLISH_BRANCH = "gh-pages"
  }
  secrets = ["ACTIONS_DEPLOY_KEY"]
}

Examples

MkDocs

workflow "MkDocs workflow" {
  on = "push"
  resolves = ["deploy"]
}

action "branch-filter" {
  uses = "actions/bin/filter@master"
  args = "branch master"
}

action "pipenv-sync" {
  needs = ["branch-filter"]
  uses = "peaceiris/actions-pipenv@3.6"
  args = "sync"
}

action "mkdocs-build" {
  needs = ["pipenv-sync"]
  uses = "peaceiris/actions-pipenv@3.6"
  args = ["run", "mkdocs", "build", "--config-file", "./mkdocs-sample.yml"]
}

action "deploy" {
  needs = ["mkdocs-build"]
  uses = "peaceiris/actions-gh-pages@v1.0.1"
  env = {
    PUBLISH_DIR = "./site"
    PUBLISH_BRANCH = "gh-pages"
  }
  secrets = ["ACTIONS_DEPLOY_KEY"]
}

License

MIT License - peaceiris/actions-gh-pages

About the author

peaceiris - Patreon