Pour être certain de la qualité du code produit sur ce projet, nous allons mettre en place une intégration continue afin d’effectuer les tests lors de chaque nouveau développement.
Mise en place
Pour commencer, nous allons créer un fichier .github/workflows/continuous-integration.yml et l’initialiser avec l’exemple du cours.
name: Continuous integration
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm run test
Ce fichier permet, à chaque commit, de lancer les tests. Maintenant, pousser ce fichier sur git et regarder Github exécuter la pipeline depuis son interface web. N’hésitez pas à cliquer sur la pipeline pour voir le terminal et les commandes lancées en temps réel par le job.
Amélioration de la pipeline
Ajouter l’exécution d’ESLint (
npm run lint) à la suite du job test.Utiliser la documentation pour lancer les jobs :
- lors d’un push sur
master. - lors d’une pull request sur une branche commençant par
feature/**oubugfix/**.
- lors d’un push sur
Lors de l’execution des tests, un repertoire coverage est créer contenant un rapport de couverture des tests. Sauvegarder ce rapport dans Github en utilisant le concept d’artifacts. Aidez-vous de la documentation.