illustration: gitlab-ci

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

illustration: gitlab-ci-pipeline

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

Gitlab CI templates

Autres exemples:

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