7. Qu'est-ce que Jenkins ?
• Un ordonnanceur de taches automatisables
• Objectif ?
- Tester rapidement et automatiquement les
évolutions/corrections de l'application
- Améliorer la qualité du code produit
- Automatiser les tâches qui peuvent l'être (test, déploiements
etc.)
- Minimiser les régressions
8. Qu'est-ce que Jenkins ne fait pas?
• Le café
• Traiter les Jiras à votre place
• Ecrire les tests à votre place
• Relire le code des autres à votre place
9. Qu'est-ce que Jenkins fait ?
• Uniquement ce que vous lui direz de faire
• Execution de commande
• Enrichissement de Jenkins grace à une banque de plugin
• Exploitation de données générées par des librairies système
• Dashboard des métriques qualitatives de développement
11. Présentation de l'interface
• Préliminaire : installation des librairies système
• Gestion des droits/utilisateurs
• Gestion des plugins
• Présentation d'un projet php intégré dans Jenkins (test,
documentation, déploiement continu)
13. Configuration
• Template php
• La source : le code
• La fréquence de build
• Les possibilités : pre/post build
• Les plugins
• Le core de la build (ant/build.xml)
• Pour aller plus loin: les builds paramétrables
14. Stratégie de Tests
PHPUnit
• Quoi tester ?
• Les tests unitaires
• Les tests fonctionnels (Selenium plugin pour Firefox)
• Analyse et code coverage
15. Déploiement continu
• Déploiement sur une plateforme en fonction du résultat de la build
• But recherché :
- Une plateforme de test à jour
- Automatisation du déploiement et des commandes (assetic,
cache, esi...)
- Minimiser les actions humaines sources d'incertitude voire
d'erreurs
- Internaliser les process au sein du projet
16. Feed Back
Le bon :
- Amélioration de la qualité du code produit
- Informations pertinentes sur le code produit
- Assurance via les tests
- Génération de la documentation du projet durant les builds
- Déploiement automatisés et systématique en cas de succés de la
build
Le mauvais :
- Non indépendance des données utilisées
- Dépendance à l'architecture réseau existante
17. Pour aller plus loin
• Des tests plus évolués (Behat/Selenium)
• Des tests de performance intégrés (BlackFire)
• Plus d'infos avec Insight (Sensio)
• Des application intégrées au sein d'une VM
• Plugger Jenkins avec Jira
18. E t J e n k i n s a u M o b i l e
T O U T L E M O N D E E N P A R L E ,
M A I S …
20. E t a p e 1 - C o m p i l a t i o n
1 - Lancement des Builds
2 - Détecter les problèmes de compilation.
21. E t a p e 2 - A n a l y s e
Qualité de code et Sonar. Principales fonctionnalités :
- Mesures qualitatives : couverture et taux de réussite des tests,
complexité du code, respect des règles de codage...
- Mesures quantitatives : nombre de classes, duplication de code, etc.
- Historiques des statistiques
- Visualisation du code source, surlignant les violations des règles de
codage qui s'y trouvent.
- Identification des points faibles d'un projet.
22. E t a p e 2 - A n a l y s e
Statistique basique :
23. E t a p e 2 - A n a l y s e
Duplications de code et complexités :
24. E t a p e 2 - A n a l y s e
Violations et issues :
25. E t a p e 3 – C o m p i l a t i o n m u l t i p l e
Utilisation des « Flavor » Android pour compiler plusieurs Apk :
Configuration d’un Apk Google_play
Configuration d’un Apk pub_test
Compilation jenkins de deux Apk
26. E t a p e 4 – A u t o m a t i s a t i o n d e s
t e s t s
Utilisation du plugin « Monkey test » :
27. E t a p e 5 – D é p l o i e m e n t
Utilisation du plugin « FTP publisher plugin » :
28. P O U R A L L E R
P L U S L O I N
C L I Q U E - M O I F O R T
29. Q U E LQ U E S L I E N S
• Jenkins
– Présentation globale : lien
– Continuous integration jenkins : lien
– Plugin list
• Sonar
– Qualité de code et Sonar : lien
– Sonar « Do Great Code »: lien
– Contrôler la qualité de ses projets avec Sonar : lien
• Monkey test
– Monkey runner and Monkey testing : lien
• PHPUnit / PHPMD
• Template PHP & Tutorial
31. M E R C I D E V O T R E AT T E N T I O N
P R O C H A I N E É D I T I O N :
V I D E O S :
E N C O D A G E / M O N E T I S A T I O N
9 J U I L L E T 2 0 1 5