-
Notifications
You must be signed in to change notification settings - Fork 2
Devops
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).
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 avecnpm run test; -
frontend-tests: les tests unitaires du frontend sont lancés avecnpm run test; -
build: le frontend est construit avecnpm run build; -
deploy: le frontend est déployé sur GitHub Pages dans la branchegh-pagesdu dépôt.
- 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;