To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon...
Transcript of To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon...
![Page 1: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/1.jpg)
Totest– con)nuously–ornottocode
Intégra)onCon)nue:
Retourd’expériencesurlamiseenplaced’undashboardCDashet
ouverturesurd’autresou)ls
ClaireMouton-CREATIS,Lyon,Franceclaire.mouton@crea<s.insa-lyon.fr
PlénièreAramis13avril2017
![Page 2: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/2.jpg)
Pourquoi?
2
![Page 3: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/3.jpg)
Pourquoi?
3
Timeismoney!
![Page 4: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/4.jpg)
Quand?
4
![Page 5: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/5.jpg)
Quand?Intégra)onCon)nue
Testerencon)nu!
5
![Page 6: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/6.jpg)
Quoi?
6
![Page 7: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/7.jpg)
Quoi?Intégra)onCon)nue:Principe
Vérifier à chaque modification de code source que
le résultat des modifications ne produit pas de régression dans l'application développée
7
![Page 8: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/8.jpg)
Quoi?Intégra)onCon)nue:Prérequis
• Partage du code source via un gestionnaire de version
• Intégration quotidienne des modifications par les développeurs
• Développement de tests d’intégration de l’application
8
![Page 9: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/9.jpg)
Quoi?Intégra)onCon)nue:Avantages
• Le test immédiat des unités modifiées • La prévention rapide en cas de code
incompatible ou manquant • Les problèmes d'intégration sont détectés et
réparés de façon continue, évitant les problèmes de dernière minute
• Une version fonctionnelle est toujours disponible pour un test, une démonstration ou une distribution
9
![Page 10: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/10.jpg)
Quoi?Intégra)onCon)nue:Méthodologie
Automatisation des tâches (compilation, tests unitaires, fonctionnels et d’intégration, tests de performance, validation, documentation ...) Méthodologie Agile • des valeurs (communication, simplicité, …) • des pratiques (petites livraisons, tests, …)
10
![Page 11: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/11.jpg)
Quoi?Au-delàdel’intégra)oncon)nue
Couverture du code Vérification syntaxique Construction d’image de conteneurs et déploiement
11
![Page 12: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/12.jpg)
Comment?
12
![Page 13: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/13.jpg)
Comment?Unou)ld’intégra)oncon)nue:CDash
13
Open source CDash déployé sur son propre serveur ou hébergé chez Kitware (my.cdash.org) Projet CMake (multiplateforme) / CTest Événement - commit (Continuous)
- à la demande (Experimental) - crontab (Nightly)
Compilation / Tests / Doc/ Couverture / Analyse Dynamique sur notre architecture (machine réelle, virtuelle, cluster, …) Envoi des résultats au dashboard en ligne
![Page 14: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/14.jpg)
Comment?L’exempledeCDashpourCMake
14
![Page 15: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/15.jpg)
Comment?L’exempledeCDashpourCMake
Compilation multiplateforme et Tests / Nightly https://open.cdash.org/index.php?project=CMake
15
![Page 16: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/16.jpg)
Comment?L’exempledeCDashpourCMake
Compilation multiplateforme et Tests / Continuous
16
![Page 17: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/17.jpg)
Comment?L’exempledeCDashpourCMake
Génération de la documentation
17
![Page 18: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/18.jpg)
Comment?L’exempledeCDashpourCMake
Couverture
18
![Page 19: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/19.jpg)
Comment?L’exempledeCDashpourCMake
Analyse dynamique avec
Valgrind AddressSanitizer
19
![Page 20: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/20.jpg)
Comment?Retourd’expérience:CDashpourGate
20
![Page 21: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/21.jpg)
Comment?Retourd’expérience:CDashpourGate
gammabeaminwaterbox. gamma-3d-Dosevisualiza)onwithvv.
21
![Page 22: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/22.jpg)
Comment?Retourd’expérience:CDashpourGate
22
Images de référence récupérées depuis le serveur Midas
![Page 23: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/23.jpg)
Comment?Retourd’expérience:CDashpourGate
Vue d’ensemble du Dashboard
23
![Page 24: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/24.jpg)
Comment?Retourd’expérience:CDashpourGate
24
Les fichiers CMake Configuration pour la compilation du projet et Ctest
Lancement via CTest
![Page 25: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/25.jpg)
Comment?Retourd’expérience:CDashpourGate
25
Build log avec détail des erreurs
![Page 26: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/26.jpg)
Comment?Retourd’expérience:CDashpourGate
26
Résultat des tests
![Page 27: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/27.jpg)
Comment?Retourd’expérience:CDashpourGate
27
Exemple de log des tests (1/2)
![Page 28: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/28.jpg)
Comment?Retourd’expérience:CDashpourGate
28
Exemple de log des tests (2/2)
![Page 29: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/29.jpg)
D’autresou<ls
29
![Page 30: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/30.jpg)
TravisCI
30
Gratuit pour projets open-source – Licence MIT (open source) Hébergé : compilation, exécution en ligne Interfacé à Github Unix / Pas d’environnement Windows Limites de la version gratuite :
Temps limité 2 threads maximum
Pas d’accès aux machines (seul le log est accessible)
![Page 31: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/31.jpg)
Appveyor
31
Equivalent à Travis CI pour Windows Propriétaire
![Page 32: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/32.jpg)
Gitlab-CI
32
Intégré à GitLab - fichier ".gitlab-ci.yml" à la racine de votre dépôt Open source Multi-plateforme Multi-langage Compilation en parallèle Possibilité d’utiliser des images Docker personnalisées
![Page 33: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/33.jpg)
Jenkins(forkdeHudson)
33
Open source A installer sur sa propre infrastructure Interfacé à gestionnaires de versions tels que CVS, Subversion, Git Exécute des projets basés sur Apache Ant et Apache Maven aussi bien que des scripts en shell Unix ou batch Windows Solution de remplacement populaire à l'outil de référence CruiseControl
![Page 34: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/34.jpg)
Strider-CD
34
Open source Intégration continue et serveur de déploiement A installer sur sa propre infrastructure Interfaçable à Github, Gitlab, Bitbucket, Node.js, Docker
![Page 35: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/35.jpg)
Comparaisonsavecd’autresou)ls
h]ps://en.wikipedia.org/wiki/Comparison_of_con)nuous_integra)on_so`wareh]ps://www.slant.co/topics/799/~best-con)nuous-integra)on-toolsh]ps://www.slant.co/topics/186/~best-hosted-con)nuous-integra)on-services
35
![Page 36: To test connuously or not to code - RESINFO To test – connuously – or not to code Intégraon Connue : Retour d’expérience sur la mise en place d’un dashboard CDash et ouverture](https://reader034.fdocuments.us/reader034/viewer/2022052018/60311acd891aae216e03d00d/html5/thumbnails/36.jpg)
AtelierIntégra)onCon)nueGroupeCalcul
Prêts à franchir le cap de l’automatisation de vos compilations et tests?
Inscrivez-vous du 29 au 31 mai à Paris ! http://calcul.math.cnrs.fr/spip.php?article282
Au programme : Git, Docker,
Jenkins, Gitlab CI, Travis CI
36