Commit bb27abfc authored by Kourser's avatar Kourser
Browse files

CI : pnpm installé par npm, et liens de documentation relatifs

Deux défauts, tous deux révélés par le premier passage réel.

corepack n'est pas dans l'image
  « bash: corepack: command not found ». L'espace de travail ne peut pas s'en
  passer pour autant : les dépendances internes sont déclarées en
  « workspace:* », que npm ne résout pas. pnpm s'installe donc par npm, à la
  version exacte que déclare packageManager.

  Merci pour votre configuration de référence — j'en ai retenu la leçon sur
  l'image, mais pas « npm install --force » : sur ce dépôt, il casserait sur
  @kastell/shared.

Les liens absolus ignoraient le préfixe de base
  La construction locale passait parce qu'elle sert à la racine. Avec une
  vraie adresse GitLab Pages, « /licence » ne devient pas « /kastell/licence »,
  et les pages anglaises produisaient « /kastell/en/en/licence » — je préfixais
  la locale à la main alors que Docusaurus le fait déjà.

  Les seize liens internes sont désormais des chemins relatifs de fichier
  (« ./verifier.md »). Docusaurus les résout quels que soient le préfixe et la
  langue, et les valide à la construction contre les fichiers qui existent.

Éprouvé sur les trois formes de déploiement : Pages à la racine d'un domaine,
Pages dans un sous-chemin, et construction locale sans CI_PAGES_URL. Aucun lien
mort dans les trois cas.

Signed-off-by: default avatarKourser <contact@kourser.bzh>
Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent 40f3fdc6
Loading
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@
# Deux travaux, et le second ne part que si le premier passe : publier une
# documentation depuis une révision qui ne tient pas ses garanties reviendrait
# à documenter un produit qui n'existe pas.
#
# pnpm est installé par npm, pas par corepack : corepack n'est pas présent dans
# toutes les images Node, et l'espace de travail ne peut pas s'en passer — les
# dépendances internes sont déclarées en « workspace:* », que npm ne résout pas.
# ═══════════════════════════════════════════════════════════════════════════

stages: [verifier, publier]
@@ -11,13 +15,8 @@ stages: [verifier, publier]
default:
  image: node:24
  before_script:
    - corepack enable
    - corepack prepare pnpm@9 --activate

variables:
  # Le magasin pnpm dans l'espace de travail : sans cela, la mise en cache
  # GitLab ne peut pas le voir.
  PNPM_HOME: "$CI_PROJECT_DIR/.pnpm-store"
    - npm install -g pnpm@9.12.3
    - pnpm config set store-dir "$CI_PROJECT_DIR/.pnpm-store"

cache:
  key:
@@ -61,7 +60,7 @@ pages:
  stage: publier
  needs: [verifications]
  script:
    - pnpm install --frozen-lockfile --filter @kastell/site
    - pnpm install --frozen-lockfile --filter @kastell/site...
    # CI_PAGES_URL est lu par docusaurus.config.ts : l'adresse n'est jamais
    # écrite en dur, pour qu'un auto-hébergeur qui reprend ce dépôt obtienne
    # la sienne sans rien modifier.
+3 −3
Original line number Diff line number Diff line
@@ -43,6 +43,6 @@ compromis. Tout ce qui suit découle de cette hypothèse.

## Par où commencer

- [Pourquoi ce produit existe](/pourquoi) — le raisonnement, en cinq minutes.
- [Installation](/installation) — une instance qui tourne, en dix minutes.
- [Comment ça marche](/fonctionnement/boite-noire) — la boîte noire, d'abord.
- [Pourquoi ce produit existe](./pourquoi.md) — le raisonnement, en cinq minutes.
- [Installation](./installation.md) — une instance qui tourne, en dix minutes.
- [Comment ça marche](./fonctionnement/boite-noire.md) — la boîte noire, d'abord.
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ base qu'il protège.
| `KASTELL_SOURCE_URL` | Où trouver le code de **cette** instance. Si vous l'avez modifié, pointez vers votre dépôt. |
| `KASTELL_REVISION` | La révision exacte, inscrite à la construction. |

Voir [Licence](/licence).
Voir [Licence](./licence.md).

### Base, cache, stockage

+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ KASTELL_SOURCE_URL=https://git.exemple.org/notre-kastell
```

Un dépôt interne accessible à vos utilisateurs suffit ; il n'a pas à être public.
Voir [Licence](/licence).
Voir [Licence](./licence.md).

## Ce qui vous incombe, et que le produit ne fera pas

+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ Un export complet et autoportant :
- les références documentaires et leurs empreintes.

Ce fichier se vérifie **sans Kastell**. C'est tout l'intérêt : voir
[Vérifier sans nous faire confiance](/verifier).
[Vérifier sans nous faire confiance](../verifier.md).

## Le retour d'expérience

Loading