Hosting a Hugo Blog on Github for Free with Pages and Actions
I’ve recently started a new blog using the static-site generator and HN-favourite, hugo. Hugo lets your write your posts and site content as markdown files which you can check into source control. From this, you can build and deploy raw files to humble static hosting.
There are many ways to build a deployment pipeline. I have seen people build and check-in artifacts manually or use a paid service to handle this. However, nothing costly or irriating is neccessary.
Step 1: Actions
Assuming you have a repository containing your hugo blog files, all you have to do is add this script to .github/workflows/deploy.yml
. If your blog uses a master
branch or any other, change it accordingly.
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: sudo snap install hugo
- run: hugo
- uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: public
Step 2: Pages
Now just make sure pages is deploying from your gh-pages
branch. Our script will take source files from master
, build them, and commit the result to gh-pages
.
Step 3: Enjoy
All you have to do now is write the content. Good luck.