Commit e38ce436 authored by Kourser's avatar Kourser
Browse files

CI : Node vient du dépôt, plus de l'hôte

L'hôte du runner porte Node v18.19.1. Ce dépôt en exige 22, Docusaurus au
moins 20. Le pipeline échouait donc à la construction du site.

Pourquoi ni l'une ni l'autre des issues évidentes
  Mettre l'hôte à jour demande les droits d'administration — que je n'ai pas —
  et surtout déplace la vérité hors du dépôt : plus rien n'y dirait quelle
  version le projet attend, et la prochaine machine reposerait la question.

  Abaisser l'exigence à Node 18 reviendrait à construire une documentation de
  crise avec une version qui ne reçoit plus de correctifs de sécurité.

  Alors Node est installé dans le répertoire du projet, comme pnpm, sans rien
  toucher sur la machine. La version est écrite dans outils/node-ci.sh,
  versionnée avec le reste, et le cache l'évite au passage suivant.

L'archive est contrôlée avant d'être exécutée
  Une archive téléchargée puis exécutée sans contrôle serait une porte
  d'entrée dans la chaîne de construction — c'est par là que passent les
  compromissions d'écosystème. L'empreinte SHA-256 est inscrite dans le dépôt,
  relevée sur nodejs.org. Un écart fait échouer le travail, sans reprise.

Éprouvé, et pas seulement le chemin qui réussit
  L'empreinte inscrite a été confrontée à l'archive Linux x64 réelle : elles
  concordent. Le refus a été exercé avec une empreinte volontairement fausse :
  sortie non nulle, rien d'installé, rien laissé sur disque. Les deux travaux
  ont ensuite été rejoués sous ce Node 22 exact, jusqu'au « mv site/build
  public » — plus aucun avertissement de moteur, 26 pages dans les deux
  langues. Et le second passage se contente du cache.

Ce que la répétition locale ne prouve pas : sur macOS l'empreinte inscrite ne
correspond pas à l'archive téléchargée, le contrôle est donc annoncé comme
impossible et sauté. Sous Linux — le seul cas de l'intégration — il a lieu.

Signed-off-by: default avatarKourser <contact@kourser.bzh>
Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent e20c108f
Loading
Loading
Loading
Loading