Compétence RNCP : C2.1.2
- Déploiement continu : CD.md
- Pipeline Github
- Configuration NodeJS (inclus les commandes npm)
Assurer qu’à chaque contribution, le code est automatiquement analysé, testé et construit afin de détecter au plus tôt les régressions, garantir la qualité et sécuriser les fusions vers les branches d’intégration.
- Dépôt Git : GitHub (LockLite)
- CI/CD : GitHub Actions
- Gestion des dépendances : npm (NodeJS)
- Qualité de code : ESLint
- Tests unitaires : Jest (avec couverture)
- Build : Next.js
- Branches cibles :
mainetdevelop(via Pull Request)
- pull_request sur
mainetdevelop
Chaque PR versmainoudevelopdéclenche le pipeline complet (lint, tests, build).
La fusion est autorisée uniquement si tous les jobs passent au vert.
- Runner :
ubuntu-latest - Node.js : version 22
- Cache : npm activé via
actions/setup-nodepour accélérer les installations - Installation :
npm ci(clean-install) pour des builds reproductibles à partir dupackage-lock.json
L’intégration se fait en trois jobs indépendants exécutés en parallèle sur chaque PR.
L’ordre logique est : lint, tests, build (même si parallélisé par GitHub Actions).
- Objectif : vérifier la conformité du code aux règles définies par ESLint.
- Étapes :
- Checkout du code
- Installation de Node.js 22 et activation du cache npm
- Installation des dépendances (
npm ci) - Lancement du linter (
npm run lint)
- Critère de réussite : échec bloquant si ESLint détecte des erreurs.
- Objectif : prévenir les régressions via l’exécution de tous les tests unitaires avec couverture.
- Étapes :
- Checkout du code
- Installation de Node.js 22 et activation du cache npm
- Installation des dépendances (
npm ci) - Exécution des tests avec couverture (
npm run test:cov)
- Critère de réussite : échec bloquant si un test échoue ou si Jest rencontre une erreur.
- Objectif : valider la compilabilité et l’assemblage du projet.
- Étapes :
- Checkout du code
- Installation de Node.js 22 et activation du cache npm
- Installation des dépendances (
npm ci) - Build de l’application (
npm run build)
- Critère de réussite : échec bloquant si la construction Next.js échoue.
- Une PR ne peut être fusionnée vers
mainoudevelopque si tous les jobs sont au vert. - Les revues de code sont réalisées après validation CI.
- Lint en échec : correction locale puis nouveau push déclenche une relance automatique du job.
- Tests en échec : correction des tests ou du code, vérification locale (
npm run test) puis push. - Build en échec : correction de configuration ou de code, test du build local (
npm run build) puis push.
- Reproductibilité : Node 22 +
npm ciassurent un environnement homogène. - Traçabilité : chaque exécution CI est historisée dans GitHub Actions (logs conservés).
- Secrets : non requis par ce pipeline (aucun déploiement intégré ici).
- Auteur de la PR : s’assure du passage des jobs en local et corrige les échecs CI.
- Relecteur(s) : valide la pertinence technique et architecturale après CI verte.
- Mainteneur : contrôle le respect de la politique de merge.
- Taux de réussite des workflows par PR.
- Temps moyen d’exécution par job.
- Tendance de couverture (exposée par
test:covdans les logs).
- Base de données éphémère : non incluse dans ce workflow.
- Artefacts : non publiés (possibilité d’ajouter un export de build ou des rapports de couverture).
- Déploiement : indépendant (un bot est chargé du déploiement continu, il ne dépend pas du résultat de la CI).
- Scripts utilisés :
npm run lintnpm run test:covnpm run build
- Branches cibles :
main,develop - Environnement CI :
ubuntu-latest, Node 22, cache npm