Jenkins - Les jeudis de la découverte

584 vues

Publié le

Utilisation de jenkins pour un projet PHP et Android

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
584
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
16
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Jenkins - Les jeudis de la découverte

  1. 1. 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 F A I R E
  2. 2. I N T R O D U C T I O N T O U T L E M O N D E E N P A R L E , M A I S …
  3. 3. AVANT JENKINS
  4. 4. APRES JENKINS
  5. 5. 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 » :
  6. 6. Qu'est-ce que Jenkins ? •Un outil de monitoring de développement
  7. 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. 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. 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
  10. 10. Processus d'intégration continue
  11. 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)
  12. 12. D U C O N C R E T E N F I N U N E D E M O
  13. 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. 14. Stratégie de Tests PHPUnit • Quoi tester ? • Les tests unitaires • Les tests fonctionnels (Selenium plugin pour Firefox) • Analyse et code coverage
  15. 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. 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. 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. 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 …
  19. 19. A r c h i t e c t u r e
  20. 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. 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. 22. E t a p e 2 - A n a l y s e Statistique basique :
  23. 23. E t a p e 2 - A n a l y s e Duplications de code et complexités :
  24. 24. E t a p e 2 - A n a l y s e Violations et issues :
  25. 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. 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. 27. E t a p e 5 – D é p l o i e m e n t Utilisation du plugin « FTP publisher plugin » :
  28. 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. 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
  30. 30. Q U E S T I O N S ?
  31. 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

×