SlideShare une entreprise Scribd logo
1  sur  31
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 pipelineNicolas wallerand
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_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/Hudsonxmacina
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien 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 legacyFranç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é majeureJonathan 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 APIsOCTO 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 & AndroidThibaud 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 MeuelCocoaHeads France
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Princesse CI au pays des tests
Princesse CI au pays des testsPrincesse CI au pays des tests
Princesse CI au pays des testsHubert 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 JenkinsRossi Oddet
 
DevOps - from idea to production
DevOps - from idea to productionDevOps - from idea to production
DevOps - from idea to productionHabib MAALEM
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with ChefOlivier 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
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
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 PluginDaniel 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 logicielUSTHB & DELTALOG
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for JenkinsLarry 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 NetflixJustin Ryan
 
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-2014Digital Saint-Malo
 
Lanterne chinoise
Lanterne chinoiseLanterne chinoise
Lanterne chinoiseomniplexs
 
Ecologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLEEcologie urbaine: Rue des modes LILLE
Ecologie urbaine: Rue des modes LILLECarole Péraste
 
Servidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webServidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webmonse_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 2003Gerard GEORGES
 
SISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambientalSISMEGA S.L. - Consultoría medioambiental
SISMEGA S.L. - Consultoría medioambientalSISMEGA, 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 logicielsSylvain Leroy
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
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 SonarSourceSébastien GIORIA
 
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-gate01Cyber Security Alliance
 
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éfautsJulien 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 defautsAntoine 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 collaboratifkemenaran
 
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 lyonClement Bouillier
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent 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 2Christophe Rochefolle
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - IntroductionOlivier 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é majeureMarc 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-17Marc 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 javascriptMichael 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 camp2010Lushkah911
 
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 2015Sebastien 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
 
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
 
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
 
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