Sorry, you need to enable JavaScript to visit this website.

Formation avancée CI pour projets Drupal 11 : Conception et industrialisation (Intégralement généré par AI)

Soumis par dpalicepeio le

Plan de formation détaillé — Intégration continue dans un environnement Drupal 11

Conception, mise en place et industrialisation d’une chaîne CI robuste pour projets Drupal 11, couvrant qualité, tests automatisés, sécurité, packaging, et intégration avec les principales plateformes CI.

Public cible

  • Développeurs PHP/Drupal
  • Ingénieurs DevOps / Platform
  • QA/Automation Engineers
  • Leads techniques / Architectes

Prérequis

  • Maîtrise de Git et Composer
  • Notions de containers (Docker) et de scripts shell
  • Connaissances de base Drupal (structure, Drush, configuration)
  • Connaissances de base des tests (PHPUnit) et du front-end (Node/NPM)

Durée et format

  • Format intensif: 5 jours (35 h) avec ateliers quotidiens
  • Format étendu: 6 à 8 semaines, 2 sessions/sem., mentorat et projet fil rouge

Objectifs pédagogiques

  • Industrialiser l’installation, le build et les tests d’un projet Drupal 11
  • Définir une stratégie de qualité et de sécurité “shift-left”
  • Optimiser les pipelines (cache, parallélisation, artefacts)
  • Intégrer la CI aux plateformes GitHub/GitLab/Bitbucket
  • Préparer l’extension vers le déploiement continu (CD)

Outils et versions de référence

  • Drupal 11, PHP 8.2/8.3, Composer 2.7+
  • Drush 13+, PHPUnit 10+, PHPStan 1.x (phpstan-drupal), PHPCS (Drupal Coder)
  • Node.js 20/22 LTS, npm/pnpm, ESLint, Stylelint, Prettier
  • Behat + Mink + Drupal Extension, Playwright/Cypress, BackstopJS (visuel)
  • Docker, DDEV/Lando (environnements reproductibles)
  • Renovate/Dependabot, Composer Audit, Trivy/Grype (sécurité), SonarQube/SonarCloud

Parcours pédagogique par modules

Module 1 — Fondamentaux CI et architecture Drupal 11

  • Concepts CI/CD, qualité logicielle, trunk-based vs GitFlow, stratégies de branches
  • Structure d’un projet Drupal 11: core-recommended, core-dev, web root, config
  • Standards de commits (Conventional Commits), reviews et règles de merge

Atelier: Initialisation d’un repo Drupal 11 modèle avec conventions de branches et hooks locaux.

Livrables: Modèle de dépôt, guide de contribution, politique de revue.

Module 2 — Environnement reproductible

  • Docker/DDEV/Lando, services (PHP-FPM, Nginx/Apache, DB, Redis), versions PHP
  • Gestion des dépendances: Composer (PHP), Node (front), verrous et audit
  • Instantané de base de données et configuration (sync/config splits)

Atelier: Provisionnement local identique à la CI (mêmes images/versions, scripts).

Livrables: Fichiers de stack, scripts d’onboarding et de build.

Module 3 — Qualité de code et contrôles pré-commit

  • PHPCS (Drupal Coder), PHPStan (niveau progressif), ESLint/Stylelint/Prettier
  • GrumPHP/Husky: exécutions locales rapides, prévention des régressions
  • Rapports JUnit/Checkstyle pour agrégation CI

Atelier: Mise en place d’un pipeline local “quality gate”.

Livrables: Configurations lint/analysis, seuils et politique d’échouement.

Module 4 — Conception du pipeline CI Drupal 11

  • Étapes: checkout, validation Composer, installation dépendances, build thème
  • Stratégies de cache Composer/Node, clés par fichier lock, restauration stricte
  • Artefacts: assets front, rapports tests/coverage, archives déployables

Atelier: Pipeline “Build & Test” de base, artefacts versionnés.

Livrables: Spécification des jobs/stages et diagramme de flux.

Module 5 — Tests automatisés Drupal

  • Pyramide de tests: unitaires, kernel, fonctionnels, JS
  • PHPUnit 10: configuration, data providers, coverage (PCOV/Xdebug)
  • Tests end-to-end: Behat (Mink + Drupal Extension), Playwright/Cypress
  • SQLite pour unit/kernel, services DB pour fonctionnels; Headless Chrome

Atelier: Exécution parallèle des suites (split par répertoires/temps).

Livrables: Plan de tests, configuration phpunit.xml.dist et scénarios E2E.

Module 6 — Sécurité et conformité

  • Composer Audit, Symfony security checker (équivalents), scans conteneurs (Trivy/Grype)
  • Mises à jour automatiques (Renovate/Dependabot) et stratégies de versioning
  • Secret management: variables chiffrées, OIDC, Vault/KMS; SBOM (CycloneDX)

Atelier: Job de sécurité à seuils bloquants et reporting.

Livrables: Politique de dépendances, calendrier de patching.

Module 7 — Plateformes CI majeures

  • GitHub Actions: workflows réutilisables, matrices PHP/DB, caching
  • GitLab CI: templates, includes, rules, caches, artifacts et environments
  • Bitbucket Pipelines/Azure DevOps: runners hébergés/self-hosted, permissions

Atelier: Implémentation du pipeline sur deux fournisseurs différents.

Livrables: Workflows prêts à l’emploi, documentation d’exécution.

Module 8 — Configuration, données et packaging

  • Drush: cim/cex, updb, cr; séquences sûres et idempotentes
  • Config Split/Ignore pour séparer environnements; contenu de test et fixtures
  • Création d’artefacts déployables: build front, vendor, scripts; checksum

Atelier: Job “Package” avec promotion d’artefacts (dev → staging).

Livrables: Manifeste d’artefacts, script d’orchestration Drush.

Module 9 — Performance des pipelines

  • Cache intelligent (clés par lockfile/hash), warmup sélectif
  • Exécution parallèle et sharding de tests, time-based splitting
  • Stratégies d’exécution: push vs PR/MR, paths-filter, nightlies, flaky tests

Atelier: Réduction du temps de CI et budget de compute.

Livrables: Tableau de bord de durée et plan d’optimisation.

Module 10 — Observabilité et gouvernance

  • Rapports JUnit, coverage, lint; badges de statut; qualité SonarQube
  • Politique de qualité (quality gate), seuils et approbations
  • Traçabilité: logs, artefacts, conservation, conformité

Atelier: Agrégation des rapports et portail qualité.

Livrables: Tableau de bord qualité et règles d’acceptation.

Module 11 — Intégration à l’écosystème d’hébergement

  • Acquia, Pantheon, Platform.sh, Lagoon: déclencheurs, variables, CLI
  • Stratégies de déploiement: blue/green, canary, feature toggles
  • Préparation CD: validations post-deploy, smoke tests, rollbacks

Atelier: Promotion vers un PaaS (staging) avec smoke tests.

Livrables: Playbook de déploiement et critères de promotion.

Gabarit de pipeline (stades et contrôles)

  • Pré-checks
    • Validation Composer, phpcs.xml/phpstan.neon lint YAML/JSON
    • Audit dépendances PHP/JS
  • Build PHP
    • Cache Composer par hash de composer.lock + version PHP/OS
    • Installation sans scripts interactifs, optimisation autoload
  • Build Front
    • Cache Node par lockfile; npm ci/pnpm install
    • Lint + build des thèmes/custom modules assets
  • Tests
    • Unitaires/Kernel avec SQLite; Functional/JS avec service DB + navigateur headless
    • Rapports JUnit + couverture; parallélisation
  • Analyse statique
    • PHPCS, PHPStan (niveaux progressifs), ESLint/Stylelint
    • SonarQube/SonarCloud si requis
  • Sécurité
    • Composer Audit, scans d’images (Trivy/Grype), SCA JS
    • Échec sur vulnérabilités au-dessus d’un seuil
  • Packaging
    • Bundle application: web/, vendor/, assets, scripts, manifest
    • Artefacts nommés, checksums, rétention
  • Publication/Promotion
    • Push artefacts vers registry/bucket
    • Promotion manuelle ou automatique selon règles
  • Nightly/maintenance
    • Mises à jour automatisées, longue suite de tests, coverage complet

Projet fil rouge (capstone)

  • Référentiel Drupal 11 réel (thème custom + 1 module custom)
  • Pipeline multi-plateformes (GitHub Actions et GitLab CI)
  • Qualité bloquante: PHPCS, PHPStan, ESLint; couverture cible ≥ 60% sur domain logique
  • Tests: 10+ unitaires, 3+ kernel, 2+ fonctionnels, 2 scénarios Behat, 1 test visuel
  • Job sécurité bloquant; packaging et promotion vers staging
  • Tableau de bord qualité, documentation d’exploitation

Critères d’évaluation: fiabilité, performances du pipeline, complétude des contrôles, clarté de la documentation, maintenabilité.

Planning type (format 5 jours)

  • Jour 1: Modules 1–2 + atelier environnement
  • Jour 2: Modules 3–4 + pipeline de base
  • Jour 3: Module 5 + tests parallélisés
  • Jour 4: Modules 6–7 + déploiement staging
  • Jour 5: Modules 8–11 + finalisation capstone et soutenance

Bonnes pratiques essentielles

  • Un seul gestionnaire des dépendances PHP (core-recommended), verrous commités
  • Build reproductible: versions pinées, cache déterministe, hash par lock
  • Séparation nette build/test/packaging; artefacts immuables
  • Tests rapides en amont, suites lourdes sur nightlies
  • Secrets hors dépôt, rotation et moindre privilège
  • Seuils qualité/sécurité explicites et partagés

Ressources de référence

  • Documentation Drupal 11 (tests, configuration, best practices)
  • Drush 13+ (commandes, recettes CI)
  • PHPUnit, PHPStan (phpstan-drupal), Drupal Coder (PHPCS)
  • Behat Drupal Extension, Playwright/Cypress, BackstopJS
  • Guides GitHub Actions, GitLab CI/CD, Bitbucket Pipelines
  • SonarQube/SonarCloud, Trivy/Grype, Renovate/Dependabot

Check-lists d’implémentation

  • CI readiness
    • composer.lock et lock front présents; scripts standardisés
    • phpunit.xml.dist et jeux de données de test
    • Configs PHPCS/PHPStan/ESLint/Stylelint validées
  • Pipeline
    • Cache Composer/Node par hash, artefacts nommés, rapports publiés
    • Parallélisation des tests et seuils qualité/sécurité
    • Packaging reproductible et promotion contrôlée
  • Sécurité
    • Variables chiffrées, permissions minimales, rotation
    • Scans dépendances et images intégrés et bloquants