Skip to content
Abderrachid BELLAALI edited this page Dec 12, 2022 · 2 revisions

Devops

Introduction

L'objectif est que les tests se lancent automatiquement à chaque push sur la branche main. Si les tests passent, alors le déploiement se lance automatiquement. Si les tests échouent, alors le déploiement ne se lance pas et le développeur est notifié et l'ancienne version du site est toujours en ligne (celle qui a été déployée lors du dernier push qui a réussi).

Pipeline CI/CD avec GitHub Actions

Quesque c'est un pipeline ? C'est une suite de jobs qui sont lancés les uns après les autres et qui peuvent dépendre les uns des autres. Par exemple, le job build peut dépendre du job frontend-tests car il ne sert à rien de construire le frontend si les tests échouent (on ne veut pas déployer une version qui ne fonctionne pas).

Le pipeline est défini dans le fichier .github/workflows/ci.yml et il est lancé à chaque push ou pull request sur la branche main.

Le pipeline est composé de 4 jobs :

  • backend-tests : les tests unitaires du backend sont lancés avec npm run test;
  • frontend-tests : les tests unitaires du frontend sont lancés avec npm run test;
  • build : le frontend est construit avec npm run build;
  • deploy : le frontend est déployé sur GitHub Pages dans la branche gh-pages du dépôt.

Améliorations futures

  • Créer une image Docker pour le frontend et la déployer Docker Hub;
  • Créer une image Docker pour le backend et la déployer Docker Hub;
  • Déployer le frontend et le backend sur un serveur avec Docker Compose;

Clone this wiki locally