Hugo está genial para crear un blog y Github Pages es sublime para albergarlo. El problema es que tienes que renderizar en local la web con Hugo en local y luego subir el directorio Public
a Github Pages. Si no estás con tú ordenador, es un problema.
Pero gracias a las Github Actions podemos automatizar todo esto… Vamos a ver cómo:
Creamos repositorio de Github Pages:
https://github.com/<usuario>/<usuario>.github.io
Creamos repositorio de Hugo:
https://github.com/<usuario>/mihugo
Creamos un token en nuestra cuenta:
https://github.com/settings/tokens/new
y copiamos el código que nos da.Vamos a ambos repositorios anteriores, a la sección Secrets:
https://github.com/<usuario>/<usuario>.github.io/settings/secrets
yhttps://github.com/<usuario>/mihugo/settings/secrets
y añadimos un nuevo secret, llamándolo hugosecret y pegando el código que nos dió el punto 3.En el repositorio del punto 2,
https://github.com/<usuario>/mihugo
creamos los directorios y el fichero:.github/workflows/main.yml
, poniendo este contenido:
name: renderizar hugo
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.62.0'
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v2
env:
PERSONAL_TOKEN: ${{ secrets.hugo }}
EXTERNAL_REPOSITORY: <usuario>/<usuario>.github.io
PUBLISH_BRANCH: master
PUBLISH_DIR: ./public/
Ya está, cada vez que hagas un commit al repositorio del punto 2, automáticamente ejecutará hugo y hará un commit del directorio Public en el repositorio del punto 1, desplegando un nuevo post en tu blog que tendrá la dirección https://<usuario>.github.io/
:)