Skip to content

GitHub Action

Hugo to GH Pages

v2 Latest version
Use latest version

Hugo to GH Pages

GitHub Action for Building a Hugo Site and Pushing it to Github Pages


Copy and paste the following snippet into your .yml file.

- name: Hugo to GH Pages
  uses: chabad360/hugo-gh-pages@v2
Learn more about this action in chabad360/hugo-gh-pages
Choose a version
Image Credit: Peaceiris

Image Credit: Peaceiris

Build and Publish Your Hugo Site to GitHub Pages

gohugoio/hugo: The world’s fastest framework for building websites

🚀 License Release Release 🚀


This action builds your Hugo Site (using the latest Hugo Extended) and pushes it to Github Pages.

This action also contains support for several external Hugo Helpers:

Name Support
reStructuredText ✔️
Pandoc ✔️
Asciidoctor ✔️
PostCSS ✔️
Pygments ✔️
Babel ✔️
Hugo Modules ✔️

If your site requires the use of another external helper, submit an issue and I'll try to add it.

This action is based on the Docker Image from chabad360/hugo-actions. If you need to do post-build/pre-upload steps, use that action.

Getting started

This is a basic workflow.yml to get you started (for more information scroll down to Inputs):

name: Publish Site

      - master

    runs-on: ubuntu-latest

      - name: Checkout Repo
        uses: actions/checkout@master
          submodules: true
      - name: Publish Site
        uses: chabad360/hugo-gh-pages@master
          githubToken: ${{ secrets.PERSONAL_TOKEN }}


Key Description Required Default
githubToken A Github Personal Access Token with repo permissions. ✔️ N/A
cname The custom domain name for your GH Pages Site. N/A
branch The branch to push the built site to. gh-pages
repo The repository to push the built site to. The current repo
hugoVersion The version Hugo to use (append extended_ to the begining to use the extended version). Latest Hugo Extended
args Arguments to pass to Hugo --gc --minify --cleanDestinationDir
siteDir Directory that your site is stored in. /github/workspace


- name: Publish Site
  uses: chabad360/hugo-gh-pages@master
    githubToken: ${{ secrets.PERSONAL_TOKEN }}
    # Remember to set this as a secret (i.e. secrets.PERSONAL_TOKEN).
    # Don't forget to set the secret value in the project settings.
    cname: # Or anything else
    # Use if you have a custom domain for your site.
    branch: master # Or anything else
    # Use if your site is not hosted on the gh-pages branch.
    repo: you/
    # Use if you're pushing to a different repo.
    # Dont add ".git" to the end of the URL (youl'll get 404s).
    hugoVersion: extended_0.58.3
    # Use if your site requires a specific version of Hugo.
    # Append "extended_" to the begining to use Hugo Extended.
    args: --gc --minify --cleanDestinationDir
    # Use if you want to pass some custom arguments to Hugo.
    siteDir: /github/workspace/site
    # Use this if your site isn't in the root of your repo.
    # The root of your repo can be found at /github/workspace


This project is based on mattbailey/actions-hugo