Nous avons vu dans un article précédent comment déployer Hugo sur Framagit. On obtenait alors une installation fonctionnelle, mais basée sur Hugo 0.75.1
Le problème
Hugo 0.76, sorti début octobre 2020, introduit un changement dans la gestion des dates, les thèmes mis à jour affichent à la place de la date quelque chose comme
map[Count:January 5, 2021])
Il va nous falloir mettre à jour l’image Docker que nous utilisons et nous écarter de la documentation officielle pour aller trouver une image plus récente.
Quelle image choisir ?
De nombreuses images sont proposées sur Docker Hub. Leurs compositions sont plus ou moins exotiques, la documentation est souvent aléatoire..
Nous allons plutôt utiliser une source de confiance, Gitlab.com, qui propose des images pour toutes les versions récentes de Hugo, en version classique ou extended (qui permet notamment l’ usage de Sass)
Nous allons ici installer Hugo extended v0.80.0, mais vous pouvez adapter la documentation qui suit comme bon vous semble
Modification de l’intégration continue
Vous devriez déjà avoir à la racine de votre projet un fichier nommé .gitlab-ci.yml
, qui gère le build et le déploiement de Hugo.
Nous allons l’éditer pour modifier la référence de l’image Docker utilisée, puis ajouter une ligne pour lancer l’installation de Git. (l’image utilisée est basée sur
Linux Alpine, d’où l’usage de apk add git
)
Votre fichier doit alors ressembler à ce qui suit :
image: registry.gitlab.com/pages/hugo/hugo_extended:0.80.0
variables:
GIT_SUBMODULE_STRATEGY: recursive
pages:
before_script:
- apk update && apk add git
script:
- hugo
artifacts:
paths:
- public
Enregistrez vos modifications, poussez et jetez un œil aux Pipelines, dans CI / CD → Pipelines
Si après quelque secondes s’affiche passed
, c’est réussi ! Dans le cas où un bouton failed
apparaît, cliquez dessus pour obtenir les informations nécessaire au debuggage
Ressources
Autres exemples:
- klakegg/docker-hugo - post on discourse.hugo
- Deployment with Gitlab and rsync
- Updating Hugo on Gitlab Pages
Annexe : autre configuration fonctionnelle
.git: &git
- apk update && apk add git
Unit tests 2:
image: registry.gitlab.com/pages/hugo/hugo_extended:0.80.0
variables:
GIT_SUBMODULE_STRATEGY: recursive
stage: deploy
pages:
before_script: *git
script:
- hugo
- pages
artifacts:
paths:
- public