SlideShare une entreprise Scribd logo
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
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 …
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)
D U C O N C R E T
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
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 …
A r c h i t e c t u r e
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 » :
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
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
Q U E S T I O N S ?
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

Contenu connexe

Tendances

Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
Nicolas wallerand
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
laurent_opnworks
 
SonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
SonarQube Manuel Automatisation d'analyse ANT JENKINS/HudsonSonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
SonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
xmacina
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
David Buros
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
Aurelien Navarre
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
François Petitit
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Jonathan Bonzy
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
OCTO Technology
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
Fou Cha
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
Thibaud CAVIN
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
Jérémie Campari
 
Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter Meuel
CocoaHeads France
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
Klee Group
 
Princesse CI au pays des tests
Princesse CI au pays des testsPrincesse CI au pays des tests
Princesse CI au pays des tests
Hubert Lenoir
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
ekino
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
Rossi Oddet
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to production
Habib MAALEM
 
[2015] Laravel yet another framework
[2015] Laravel  yet another framework[2015] Laravel  yet another framework
[2015] Laravel yet another framework
LAHAXE Arnaud
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
Olivier BAZOUD
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with Chef
Olivier BAZOUD
 

Tendances (20)

Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
SonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
SonarQube Manuel Automatisation d'analyse ANT JENKINS/HudsonSonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
SonarQube Manuel Automatisation d'analyse ANT JENKINS/Hudson
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter Meuel
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Princesse CI au pays des tests
Princesse CI au pays des testsPrincesse CI au pays des tests
Princesse CI au pays des tests
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to production
 
[2015] Laravel yet another framework
[2015] Laravel  yet another framework[2015] Laravel  yet another framework
[2015] Laravel yet another framework
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with Chef
 

En vedette

Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL Plugin
Daniel Spilker
 
So, you want to be a plugin developer?
So, you want to be a plugin developer?So, you want to be a plugin developer?
So, you want to be a plugin developer?
ylefebvre
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
USTHB & DELTALOG
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for Jenkins
Larry Cai
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Justin Ryan
 
Smartphone
SmartphoneSmartphone
Smartphone
iron_maiden0
 
Le succès en commandites
Le succès en commanditesLe succès en commandites
Le succès en commandites
Nathalie Courville
 
Lca les livres pour ecn
Lca   les livres pour ecnLca   les livres pour ecn
Lca les livres pour ecn
Réseau Pro Santé
 
App
AppApp
E-réputation Digital-Saint-Malo_15-5-2014
E-réputation Digital-Saint-Malo_15-5-2014E-réputation Digital-Saint-Malo_15-5-2014
E-réputation Digital-Saint-Malo_15-5-2014
Digital Saint-Malo
 
andrea
andreaandrea
Lanterne chinoise
Lanterne chinoiseLanterne chinoise
Lanterne chinoise
omniplexs
 
M le Journal - Mars 2014
M le Journal - Mars 2014M le Journal - Mars 2014
M le Journal - Mars 2014
Vincent Manilève
 
Ecologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLEEcologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLE
Carole Péraste
 
Servidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webServidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios web
monse_pacheco
 
Brm executive search santé
Brm executive search santéBrm executive search santé
Brm executive search santé
BRM Conseil
 
Bilan de nos actions en 2003
Bilan de nos actions en 2003Bilan de nos actions en 2003
Bilan de nos actions en 2003
Gerard GEORGES
 
SISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambientalSISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambiental
SISMEGA, S.L.
 

En vedette (20)

Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL Plugin
 
So, you want to be a plugin developer?
So, you want to be a plugin developer?So, you want to be a plugin developer?
So, you want to be a plugin developer?
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for Jenkins
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
 
Smartphone
SmartphoneSmartphone
Smartphone
 
L'europe pile
L'europe pileL'europe pile
L'europe pile
 
Le succès en commandites
Le succès en commanditesLe succès en commandites
Le succès en commandites
 
Lca les livres pour ecn
Lca   les livres pour ecnLca   les livres pour ecn
Lca les livres pour ecn
 
App
AppApp
App
 
E-réputation Digital-Saint-Malo_15-5-2014
E-réputation Digital-Saint-Malo_15-5-2014E-réputation Digital-Saint-Malo_15-5-2014
E-réputation Digital-Saint-Malo_15-5-2014
 
andrea
andreaandrea
andrea
 
Lanterne chinoise
Lanterne chinoiseLanterne chinoise
Lanterne chinoise
 
M le Journal - Mars 2014
M le Journal - Mars 2014M le Journal - Mars 2014
M le Journal - Mars 2014
 
Ecologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLEEcologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLE
 
Servidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webServidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios web
 
Brm executive search santé
Brm executive search santéBrm executive search santé
Brm executive search santé
 
Bilan de nos actions en 2003
Bilan de nos actions en 2003Bilan de nos actions en 2003
Bilan de nos actions en 2003
 
SISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambientalSISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambiental
 

Similaire à Jenkins - Les jeudis de la découverte

La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
Lucian Precup
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
ALTER WAY
 
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate012014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
Cyber Security Alliance
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSource
Sébastien GIORIA
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
Julien Jakubowski
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
Antoine Blk
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
kemenaran
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
laurent bristiel
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
Olivier ETIENNE
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Marc Nazarian
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
Marc Hage Chahine
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
TelecomValley
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
Michael Akbaraly
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
CGI Québec Formation
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
Lushkah911
 
La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015
Sebastien Gioria
 

Similaire à Jenkins - Les jeudis de la découverte (20)

La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate012014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSource
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
Hands on Sonar
Hands on SonarHands on Sonar
Hands on Sonar
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
 
La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015
 

Jenkins - Les jeudis de la découverte

  • 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. 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 …
  • 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. Qu'est-ce que Jenkins ? •Un outil de monitoring de développement
  • 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)
  • 12. D U C O N C R E T E N F I N U N E D E M O
  • 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 …
  • 19. A r c h i t e c t u r e
  • 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
  • 30. Q U E S T I O N S ?
  • 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