Aller au contenu

PD-231 — Rétrospective

1. Contexte

Champ Valeur
Story ID PD-231
Titre GitLab CI/CD et Pages
Domaine site-vitrine
Projet site
Date complétion 2025-12-21
Verdict ACCEPTÉ

2. Métriques

Métrique Valeur
Écarts bloquants 1 (E-01 preview MR absente)
Écarts majeurs 2
Écarts mineurs 1
Stages pipeline 4 (build, validate, test, deploy)

3. Learnings clés

  • Preview MR est un invariant critique : L'absence de preview a causé un rejet immédiat. La fonctionnalité doit être implémentée dès la première version.

  • pa11y-ci v4 ne supporte pas ESM : Utiliser .pa11yci.json (JSON) ou .pa11ycirc au lieu de pa11y.config.js avec export default.

  • when: manual essentiel pour la prod : Sans validation explicite, le déploiement automatique contredit les exigences de revue avant mise en production.

  • Pipeline doit refléter le plan : Un pipeline à un seul stage deploy ne correspond pas à une architecture build/test/deploy. Le refactoring post-revue est coûteux.

  • GitLab Pages est fiable : Les headers _headers, les environments, et les artefacts fonctionnent comme documenté.

4. Patterns applicables

Nouveau pattern : Pipeline GitLab Pages complet

stages:
  - build
  - validate
  - test
  - deploy

pages:preview:
  stage: deploy
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/
    auto_stop_in: 7 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"

pages:
  stage: deploy
  when: manual  # OBLIGATOIRE pour production
  rules:
    - if: $CI_COMMIT_BRANCH == "main"

5. Signal CLAUDE.md

Priorité haute : Preview MR obligatoire.

### GitLab Pages — Preview MR obligatoire (2026-02-XX)

Tout pipeline GitLab Pages DOIT inclure :
1. **Job `pages:preview`** pour les MR avec environment `review/*`
2. **`auto_stop_in: 7 days`** pour nettoyage automatique
3. **`when: manual`** sur le job `pages` de production
4. **Stages séparés** : build → validate → test → deploy

La preview MR est un invariant critique, pas une fonctionnalité optionnelle.

6. Conclusion

PD-231 a automatisé le déploiement GitLab Pages après correction d'un écart bloquant (preview MR absente). La découverte de l'incompatibilité pa11y-ci ESM illustre l'importance de tester les outils localement avant intégration CI. L'architecture build/validate/test/deploy est désormais standard.


Rétrospective générée 2026-02-19 (Étape 10 batch site-vitrine)