Author
stephane-couzinier
View
69
Download
4
Embed Size (px)
2 5 J U I N 2 0 1 5
J E N K I N S :I N T É G R AT I O N C O N T I N U E ,P O U R Q U O I FA I R E
INTRODUCT ION
T O U T L E M O N D E E N P A R L E ,M A I S …
AVANT JENKINS
APRES JENKINS
Qu'est-ce que Jenkins ?
•Écrit en JAVA, initialement développé en 2008•Actuellement 1057 plugins•N'embarque aucune librairie•Alternative à CruiseControl, Travis, Bamboo
Intégration continue :
Développement « normal » :
Qu'est-ce que Jenkins ?
•Un outil de monitoring de développement
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
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
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
Processus d'intégration continue
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)
DU CONCRET
E N F I N U N E D E M O
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
Stratégie de Tests
PHPUnit • Quoi tester ?• Les tests unitaires• Les tests fonctionnels (Selenium plugin pour Firefox)• Analyse et code coverage
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
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
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
Et J enk ins au Mob i le
T O U T L E M O N D E E N P A R L E ,M A I S …
A rc h i t e c t u re
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.
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.
E t a p e 2 - A n a l y s e
Statistique basique :
E t a p e 2 - A n a l y s e
Duplications de code et complexités :
E t a p e 2 - A n a l y s e
Violations et issues :
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
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 » :
E t a p e 5 – D é p l o i e m e n t
Utilisation du plugin « FTP publisher plugin » :
POUR ALLERPLUS LO IN
C L I Q U E - M O I F O R T
Q U E L Q 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
Q U E S T I O N S ?
M E RC I D E VO T R E ATT 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