CI/CD
Automatiser la vérification du code et son déploiement
CI/CD : signification
CI : Continuous Integration CD : Contiuous Deployement
2
GitLab CI et rappels sur Git
• Permet de travailler à plusieurs sur
le même code
• Intrinsèquement lié à git
• Exécution à chaque push, à chaque
modification sur le code distant
• GitLab comme serveur de stockage
du code : utilisation de gitlab-ci
3
CI/CD : Concept
À chaque push, exécuter un script en plusieurs étapes
4
CI/CD : Et moi qu'est-ce que je dois faire
.gitlab-ci.yml
Image utilisée
Déclaration des stages
Premier Job
Deuxième Job
5
CI/CD : Et concrètement, qu'est-ce qui se
passe ?
6
Le TP : une calculatrice en ligne
Que fait le programme:
• server.py -> s’occupe de la partie site web
• calculator.py -> le code qu’on va tester:
• tokenize: « 5 * 8 / 12 + 2 » -> [ 5, times, 8, divide, 12, plus, 2 ]
• parse: [5, times, 9, divide, 12, plus, 2] ->
• __call__: -> 5,75
7
Le TP : une calculatrice en ligne
Lien du TP : https://gitlab.viarezo.fr/ViaRezo/cicd
• Forker le projet
• Le mettre en public !
• Cloner son fork sur son pc
8
Le TP : Consulter ses pipelines
Partie 1 : CI pour du lint (20mn)
• Garder son code propre
• Se mettre sur la branche tp1 : git checkout tp1
• Lire le README et commencer !
• On fait d'abord la CI puis on lint
10
La méthodologie TDD
D’abord les tests ensuite le code ! Les tests unitaires
Présupposé : si ça marche pour
quelque cas -> ça marche pour tous
les cas
Pour chaque fonction/morceau de
code : on écrit un test avec quelques
cas
11
Fonctionnement de pytest
• Fonctionnement avec des assert
• Exécute les fonctions en test_* dans les fichiers en test_*.py
12
Partie 2 : CI pour du test (30mn)
• Garder son code fonctionnel
• On fonctionne en tests unitaires avec pytest
• Se mettre sur la branche tp2 : git checkout tp2
• Lire le README et commencer !
• On fait d'abord la CI puis on teste (puis on répare)
13
Partie 3 : CD pour du déploiement (30mn)
• Il vous faut une VM : url.viarezo.fr/paps-cicd
• Se mettre sur la branche tp3 : git checkout tp3
• Lire le README et commencer !
14