Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chabad360/hugo-gh-pages

πŸš€ Build and Publish Your Hugo Site to GitHub Pages πŸš€
https://github.com/chabad360/hugo-gh-pages

actions github-pages hugo workflow

Last synced: 3 months ago
JSON representation

πŸš€ Build and Publish Your Hugo Site to GitHub Pages πŸš€

Awesome Lists containing this project

README

        


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](https://github.com/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](#-inputs)):

```yaml
name: Publish Site

on:
push:
branches:
- master

jobs:
build-deploy:
runs-on: ubuntu-latest

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

### ⭐ Inputs

| 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`|

#### Usage

```yaml
- name: Publish Site
uses: chabad360/hugo-gh-pages@master
with:
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: mysite.com # 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/you.github.io
# 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
```

## ⭐ Credit

This project is based on [mattbailey/actions-hugo](https://github.com/mattbailey/actions-hugo)