[![license](https://img.shields.io/github/license/peaceiris/actions-gh-pages.svg)](https://github.com/peaceiris/actions-gh-pages/blob/master/LICENSE) [![release](https://img.shields.io/github/release/peaceiris/actions-gh-pages.svg)](https://github.com/peaceiris/actions-gh-pages/releases/latest) [![GitHub release date](https://img.shields.io/github/release-date/peaceiris/actions-gh-pages.svg)](https://github.com/peaceiris/actions-gh-pages/releases) [![GitHub Actions status](https://github.com/peaceiris/actions-gh-pages/workflows/docker%20image%20ci/badge.svg)](https://github.com/peaceiris/actions-gh-pages/actions) [![Docker Hub Build Status](https://img.shields.io/docker/cloud/build/peaceiris/gh-pages.svg)](https://hub.docker.com/r/peaceiris/gh-pages) 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.) [Static Site Generators]: https://www.staticgen.com/ ## Getting started ### (1) Add ssh deploy key Generate your deploy key with the following command. ```sh ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -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. - [peaceiris/actions-hugo: GitHub Actions for Hugo extended](https://github.com/peaceiris/actions-hugo) ![peaceiris/actions-hugo latest version](https://img.shields.io/github/release/peaceiris/actions-hugo.svg?label=peaceiris%2Factions-hugo) ![peaceiris/actions-gh-pages latest version](https://img.shields.io/github/release/peaceiris/actions-gh-pages.svg?label=peaceiris%2Factions-gh-pages) ```yaml 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.1.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. ```diff - uses: peaceiris/actions-gh-pages@v2.1.0 + uses: docker://peaceiris/gh-pages:v2.1.0 ``` - [peaceiris/gh-pages - Docker Hub](https://hub.docker.com/r/peaceiris/gh-pages) ```diff - uses: peaceiris/actions-hugo@v0.58.0 + uses: docker://peaceiris/gha-hugo:v0.58.0 ``` - [peaceiris/gha-hugo - Docker Hub](https://hub.docker.com/r/peaceiris/gha-hugo) #### `GITHUB_TOKEN` > **NOTES**: This action supports `GITHUB_TOKEN` but it has some problems to deploy to GitHub Pages. See #9 ```diff - ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` ## Examples ### MkDocs ![peaceiris/actions-gh-pages latest version](https://img.shields.io/github/release/peaceiris/actions-gh-pages.svg?label=peaceiris%2Factions-gh-pages) ```yaml 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.1.0 env: ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }} PUBLISH_BRANCH: gh-pages PUBLISH_DIR: ./site ``` ## License - [MIT License - peaceiris/actions-gh-pages] [MIT License - peaceiris/actions-gh-pages]: https://github.com/peaceiris/actions-gh-pages/blob/master/LICENSE ## About the author - [peaceiris's homepage](https://peaceiris.com/)