Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

GitHub Actions for Hugo ⚡️ Setup Hugo quickly and build your site fast. Hugo extended, Hugo Modules, Linux (Ubuntu), macOS, and Windows are supported.

License

NotificationsYou must be signed in to change notification settings

peaceiris/actions-hugo

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

Repository files navigation

GitHub Actions for Hugo

Project status: active – The project has reached a stable, usable state and is being actively developed.licensereleaseGitHub release dateRelease FeedTestCode Scanning

CodeFactorcodecovMaintainability

ThisHugo Setup Action can installHugo to a virtual machine ofGitHub Actions.Hugo extended version,Hugo Modules, Linux (Ubuntu), macOS, and Windows are supported.

Fromv2, this Hugo Setup Action has migrated to a JavaScript (TypeScript) action.We no longer build or pull a Hugo docker image.Thanks to this change, we can complete this action in less than a few seconds.(A docker base action was taking about 1 min or more execution time to build and pull a docker image.)

OS (runs-on)ubuntu-latest, ubuntu-20.04, ubuntu-22.04macos-latestwindows-2019
Support✅️✅️✅️
Hugo typeHugo ExtendedHugo ModulesLatest Hugo
Support✅️✅️✅️

Table of Contents

Getting started

⭐️ Create your workflow

An example workflow.github/workflows/gh-pages.yml withGitHub Actions for GitHub Pages.For the first deployment, we have to do this operation:First Deployment withGITHUB_TOKEN - peaceiris/actions-gh-pages

peaceiris/actions-gh-pages - GitHub

name:GitHub Pageson:push:branches:      -main# Set a branch to deploypull_request:jobs:deploy:runs-on:ubuntu-22.04concurrency:group:${{ github.workflow }}-${{ github.ref }}steps:      -uses:actions/checkout@v4with:submodules:true# Fetch Hugo themes (true OR recursive)fetch-depth:0# Fetch all history for .GitInfo and .Lastmod      -name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'0.119.0'# extended: true      -name:Buildrun:hugo --minify      -name:Deployuses:peaceiris/actions-gh-pages@v3if:github.ref == 'refs/heads/main'with:github_token:${{ secrets.GITHUB_TOKEN }}publish_dir:./public

Options

⭐️ Use Hugo extended

Setextended: true to use a Hugo extended version.

-name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'0.119.0'extended:true

⭐️ Use the latest version of Hugo

Sethugo-version: 'latest' to use the latest version of Hugo.

-name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'latest'

This action fetches the latest version of Hugo byhugo | Homebrew Formulae

Tips

⭐️ Caching Hugo Modules

Insert a cache step before site-building as follows.

First, to maximize compatibility with all Hugo versions, let's define the variableHUGO_CACHEDIR:

# * ...jobs:deploy:runs-on:ubuntu-22.04env:HUGO_CACHEDIR:/tmp/hugo_cache# <- Define the env variable here, so that Hugo's cache dir is now predictible in your workflow and doesn't depend on the Hugo's version you're using.# * ...

Now, let's add the cache action call just above theBuild step:

-uses:actions/cache@v4with:path:${{ env.HUGO_CACHEDIR }}# <- Use the same env variable just right herekey:${{ runner.os }}-hugomod-${{ hashFiles('**/go.sum') }}restore-keys:|      ${{ runner.os }}-hugomod--name:Buildrun:hugo --minify

⭐️ Read Hugo version from file

How to sync a Hugo version between a Docker Compose and a GitHub Actions workflow via.env file.

Write aHUGO_VERSION to the.env file like the following and push it to a remote branch.

HUGO_VERSION=0.119.0

Next, add a step to read a Hugo version from the.env file.

    -name:Read .envid:hugo-versionrun:|        . ./.env        echo "HUGO_VERSION=${HUGO_VERSION}" >> "${GITHUB_OUTPUT}"    -name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'${{ steps.hugo-version.outputs.HUGO_VERSION }}'extended:true

Here is adocker-compose.yml example.

version:'3'services:hugo:container_name:hugoimage:"peaceiris/hugo:v${HUGO_VERSION}"# image: peaceiris/hugo:v${HUGO_VERSION}-mod   # Hugo Modules# image: peaceiris/hugo:v${HUGO_VERSION}-full  # Hugo Modules and Node.jsports:      -1313:1313volumes:      -${PWD}:/srccommand:      -server      ---bind=0.0.0.0      ---buildDrafts

The alpine base Hugo Docker image is provided on the following repository.

peaceiris/hugo-extended-docker: Hugo alpine base Docker image (Hugo extended and Hugo Modules)

⭐️ Workflow for autoprefixer and postcss-cli

Here is an example workflow for thegoogle/docsy Hugo theme.This theme needsautoprefixer andpostcss-cli to build a project.The following workflow is tested withgoogle/docsy-example.

A workflow for the Hugo Babel pipeline is also the same as follows.

name:GitHub Pageson:push:branches:      -master# Set a branch to deploypull_request:jobs:deploy:runs-on:ubuntu-22.04concurrency:group:${{ github.workflow }}-${{ github.ref }}steps:      -uses:actions/checkout@4with:fetch-depth:0# Fetch all history for .GitInfo and .Lastmod      -name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'0.119.0'extended:true      -uses:actions/setup-node@v4with:node-version:'20'cache:'npm'# The action defaults to search for the dependency file (package-lock.json,# npm-shrinkwrap.json or yarn.lock) in the repository root, and uses its# hash as a part of the cache key.# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-datacache-dependency-path:'**/package-lock.json'      -run:npm ci      -run:hugo --minify      -name:Deployuses:peaceiris/actions-gh-pages@v3if:github.ref == 'refs/heads/master'with:github_token:${{ secrets.GITHUB_TOKEN }}

⭐️ Workflow for asciidoctor

Here is an example workflow for a Hugo project usingasciidoctor.

name:GitHub Pageson:push:branches:      -main# Set a branch to deploypull_request:jobs:deploy:runs-on:ubuntu-22.04concurrency:group:${{ github.workflow }}-${{ github.ref }}steps:      -uses:actions/checkout@v4with:submodules:true# Fetch Hugo themes (true OR recursive)fetch-depth:0# Fetch all history for .GitInfo and .Lastmod      -name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'0.119.0'extended:true      -name:Setup Rubyuses:ruby/setup-ruby@v1with:ruby-version:3.2      -run:gem install asciidoctor      -name:Run Hugorun:|          alias asciidoctor="asciidoctor --attribute=experimental=true --attribute=icons=font"          hugo --minify      -name:Deployuses:peaceiris/actions-gh-pages@v3if:github.ref == 'refs/heads/main'with:github_token:${{ secrets.GITHUB_TOKEN }}

⭐️ Non-ascii Filename

cf.Gitinfo fails on unicode filename · Issue #3071 · gohugoio/hugo

name:GitHub Pageson:push:branches:      -mainjobs:deploy:runs-on:ubuntu-22.04concurrency:group:${{ github.workflow }}-${{ github.ref }}steps:      -uses:actions/checkout@v4with:fetch-depth:0      -name:Disable quotePathrun:git config core.quotePath false      -name:Setup Hugouses:peaceiris/actions-hugo@v3with:hugo-version:'0.119.0'

CHANGELOG

License

About Maintainer

Maintainer Notes

Runnpm test on a Docker container.

# On containermake buildmake all# Release script on host./release.sh

About

GitHub Actions for Hugo ⚡️ Setup Hugo quickly and build your site fast. Hugo extended, Hugo Modules, Linux (Ubuntu), macOS, and Windows are supported.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp