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
9dbd791001
Changes for peaceiris/actions-gh-pages * update: yaml example of GitHub Actions v2 settings for MkDocs, close #8 * revert: support ACTIONS_DEPLOY_KEY (ssh deploy) again * upgrade: Hugo to v0.58.0 at example yaml * remove: steps if statement from example yaml, close #12 Changes for this repository * gha: add lint job (shellcheck and hadolint) * gha: remove tag filter * gha: remove steps if statement, close #12 * gha: add action.yml * fix: FUNDING.yml |
||
---|---|---|
.github | ||
images | ||
.dockerignore | ||
.hadolint.yaml | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
action.yml | ||
entrypoint.sh |
README.md
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 ssh deploy key
Generate your 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 .github/workflows/gh-pages.yml
An example yaml file with Hugo action.
name: github pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: build
uses: peaceiris/actions-hugo@v0.58.0
with:
args: --gc --minify --cleanDestinationDir
- name: deploy
uses: peaceiris/actions-gh-pages@v2.0.0
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: ./public
Options
Pull action image from Docker Hub
You can pull a public docker image from Docker Hub.
By pulling docker images, you can reduce the overall execution time of your workflow. In addition, latest
tag is provided.
- uses: peaceiris/actions-gh-pages@v2.0.0
+ uses: docker://peaceiris/gh-pages:v2.0.0
- uses: peaceiris/actions-hugo@v0.58.0
+ uses: docker://peaceiris/gha-hugo:v0.58.0
GITHUB_TOKEN
NOTES: This action supports
GITHUB_TOKEN
but it has some problems to deploy to GitHub Pages. See #9
- ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Examples
MkDocs
name: github pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.6'
architecture: 'x64'
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r ./requirements.txt
- name: Build with MkDocs
run: mkdocs build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v2.0.0
env:
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: ./site