Skip to main content

TP Node.js BDD - 04

Contexte

Ce TP est un bonus et demande davantage d'autonomie.

Vous allez mettre en place un déploiement automatique de votre projet via GitHub Actions.

Des indications plus détaillées seront fournies pour vous accompagner dans la réalisation des différentes étapes.

Version 1 - Déploiement simple

Mettre en place un déploiement automatique classique via GitHub Actions, sans séparation des responsabilités.

L'ensemble des étapes (installation, build, déploiement) est exécuté dans un seul job.

Objectif :

  • Comprendre le fonctionnement global d'un workflow GitHub Actions
  • Déployer automatiquement votre application Express

Version 2 - Séparation CI / CD

Séparer le workflow en deux jobs distincts :

CI (Continuous Integration)

  • Installation des dépendances
  • Exécution des tests
  • Vérification du code
  • Génération d'un artifact téléchargeable du projet

À la fin du job CI, le projet est exporté sous forme d'artifact.

CD (Continuous Deployment)

  • Téléchargement de l'artifact généré par le job CI
  • Déploiement de l'application sur votre serveur

Objectif :

  • Comprendre la séparation des responsabilités entre intégration et déploiement
  • Structurer un pipeline professionnel

Version 3 - Redémarrage automatique du serveur

Dans le job CD, ajouter un script Linux permettant de redémarrer automatiquement votre serveur Express après le déploiement.

Astuce

Créer un script (ou un service Linux) chargé de gérer le redémarrage de votre backend Express.js.

Exemples possibles :

  • Utilisation de pm2
  • Création d'un service systemd
  • Script bash personnalisé

Objectif :

  • Automatiser complètement le cycle de déploiement
  • Éviter toute intervention manuelle sur le serveur

Version 4 - Intégration Sonar et contrôle qualité

Dans le job CI :

  • Ajouter l'analyse SonarQube
  • Générer le rapport de qualité et de couverture de code

Mettre en place une règle bloquante :

  • Annuler le déploiement si la couverture de code n'atteint pas 100 %

Objectif :

  • Intégrer un contrôle qualité dans la chaîne CI/CD
  • Comprendre la notion de Quality Gate
  • Empêcher le déploiement d'un code ne respectant pas les critères définis