{"id":905,"date":"2015-03-17T14:48:44","date_gmt":"2015-03-17T12:48:44","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=905"},"modified":"2015-03-17T14:48:44","modified_gmt":"2015-03-17T12:48:44","slug":"mise-en-place-dune-plateforme-dintegration-continue-partie-2","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2015\/03\/17\/mise-en-place-dune-plateforme-dintegration-continue-partie-2\/","title":{"rendered":"Mise en place d&rsquo;une plateforme d&rsquo;int\u00e9gration continue ( Partie 2 )"},"content":{"rendered":"<p>Une fois l&rsquo;ensemble des \u00e9l\u00e9ments n\u00e9cessaires \u00e0 nos tests fonctionnels ( <a title=\"Mise en place d\u2019une plateforme d\u2019int\u00e9gration continue ( Partie 1 )\" href=\"https:\/\/www.h-hennes.fr\/blog\/2015\/03\/16\/mise-en-place-dune-plateforme-dintegration-continue\/\">Installation des \u00e9l\u00e9ments n\u00e9cessaires aux tests fonctionnels<\/a> ) en place, passons \u00e0 la partie suivante.<br \/>\nL&rsquo;installation et la configuration de jenkins pour l\u2019ex\u00e9cution des tests fonctionnels.<\/p>\n<p><strong>Installation de jenkins<\/strong><\/p>\n<p>Pour installer jenkins saisissez les commandes suivantes<\/p>\n<pre lang=\"bash\">wget -q -O - https:\/\/jenkins-ci.org\/debian\/jenkins-ci.org.key | sudo apt-key add -\r\nsudo sh -c 'echo deb http:\/\/pkg.jenkins-ci.org\/debian binary\/ &gt; \/etc\/apt\/sources.list.d\/jenkins.list'\r\nsudo apt-get update\r\nsudo apt-get install jenkins\r\n<\/pre>\n<p>Il faut ensuite le lancer jenkins via la commande suivante<\/p>\n<pre lang=\"bash\">sudo service jenkins start<\/pre>\n<p>Jenkins est ensuite accessible sur le port 8080 de votre serveur via l&rsquo;url : http:\/\/<em>ip-de-votre-serveur<\/em>:8080<\/p>\n<p><strong>Configuration et s\u00e9curisation de Jenkins<\/strong><\/p>\n<p>Pour commencer mettez \u00e0 jour les plugins de jenkins via les liens :<br \/>\n&#8211; Administrer Jenkins<br \/>\n&#8211; Gestion des plugins<br \/>\n&#8211; Dans l&rsquo;onglet mises \u00e0 jour s\u00e9lectionner tout les plugins \u00e0 mettre \u00e0 jour<br \/>\n&#8211; Cliquer sur \u00ab\u00a0T\u00e9l\u00e9charger maintenant et installer apr\u00e8s red\u00e9marrage\u00a0\u00bb<br \/>\n<a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/maj-plugins-jenkins.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-906\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/maj-plugins-jenkins.jpg\" alt=\"Gestion des plugin Jenkins\" width=\"780\" height=\"246\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/maj-plugins-jenkins.jpg 780w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/maj-plugins-jenkins-300x95.jpg 300w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/a><\/p>\n<p><em>S\u00e9curiser Jenkins :<\/em><\/p>\n<p>Par d\u00e9faut jenkins est accessible en acc\u00e8s complet et sans authentification, nous allons donc mettre en place des restrictions.<br \/>\n&#8211; Cliquer sur Administrer jenkins<br \/>\n&#8211; Configurer la s\u00e9curit\u00e9 globale<br \/>\n&#8211; Cocher \u00ab\u00a0Activer la s\u00e9curit\u00e9\u00a0\u00bb<\/p>\n<p>Dans le contr\u00f4le d&rsquo;acc\u00e8s cocher \u00a0\u00bb Base de donn\u00e9es des utilisateurs de Jenkins \u00a0\u00bb<br \/>\npuis Autoriser les utilisateurs \u00e0 s&rsquo;inscrire ( sans cela impossible de cr\u00e9er un compte )<br \/>\nPour les autorisations laisser pour l&rsquo;instant \u00e0 \u00ab\u00a0Tout le monde a acc\u00e8s \u00e0 toutes les fonctionnalit\u00e9s \u00a0\u00bb<\/p>\n<p><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/securite-globale-jenkins1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-908\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/securite-globale-jenkins1.jpg\" alt=\"Configurer s\u00e9curit\u00e9 globale jenkins\" width=\"650\" height=\"600\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/securite-globale-jenkins1.jpg 650w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/securite-globale-jenkins1-300x277.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a><\/p>\n<p>Sauvegarder la configuration.<br \/>\nVous pouvez ensuite cliquer sur le nouveau lien \u00ab\u00a0Cr\u00e9er un compte\u00a0\u00bb en haut \u00e0 droite.<br \/>\nCr\u00e9er votre compte puis retourner dans la gestion de la s\u00e9curit\u00e9 globale<\/p>\n<p>Dans le cas ou vous souhaitez un seul utilisateur, d\u00e9cocher la case \u00ab\u00a0Autoriser les utilisateurs \u00e0 s&rsquo;inscrire\u00a0\u00bb<br \/>\nPuis dans les autorisation cocher \u00ab\u00a0Les utilisateurs connect\u00e9s peuvent tout faire\u00a0\u00bb<br \/>\nA pr\u00e9sent seul votre utilisateur pourra g\u00e9rer jenkins<\/p>\n<p><em>Note :<\/em><br \/>\nCette s\u00e9curisation n&rsquo;est \u00e0 mon sens pas suffisante, car les utilisateurs non identifi\u00e9s pourront toujours visualiser des donn\u00e9es en se connectant sur votre serveur.<br \/>\nC&rsquo;est pourquoi nous verrons dans un prochain article, comment mettre en place une solution de reverse proxy pour filter l&rsquo;acc\u00e8s \u00e0 jenkins.<\/p>\n<p><strong>Configuration d&rsquo;un projet de test<\/strong><\/p>\n<p>Pour\u00a0 v\u00e9rifier que tout fonctionne bien, nous allons cr\u00e9er un nouveau projet que nous appellerons \u00ab\u00a0test sample\u00a0\u00bb<br \/>\nCliquer sur \u00ab\u00a0Nouveau item\u00a0\u00bb dans le menu de gauche.<\/p>\n<p>Saisissez le nom et la description de votre projet.<br \/>\nDans les options avanc\u00e9es d\u00e9finissez un emplacement sp\u00e9cifique pour votre projet ( dans lequel votre utilisateur \u00e0 les droits )<br \/>\nPar exemple<\/p>\n<p><em>\/home\/user\/jenkins\/sample_test\/<\/em><\/p>\n<p>Rendez-vous dans ce dossier en ssh et clonez le projet github : https:\/\/github.com\/nenes25\/phpunit_selenium_sample.git<br \/>\nvia la commande<\/p>\n<pre lang=\"bash\">git clone https:\/\/github.com\/nenes25\/phpunit_selenium_sample.git<\/pre>\n<p>Dans la configuration du projet ,<\/p>\n<p>ajoutez une \u00e9tape au build \u00ab\u00a0Ex\u00e9cuter un script shell\u00a0\u00bb<br \/>\nAvec la commande suivante :<\/p>\n<pre lang=\"bash\">cd phpunit_selenium_sample\r\nphpunit --configuration phpunit.xml\r\n<\/pre>\n<p>Ajouter une \u00e9tape action apr\u00e8s le build \u00ab\u00a0Publier les r\u00e9sultats des test Junit\u00a0\u00bb<br \/>\nAvec le fichier des rapport de test \u00ab\u00a0phpunit_selenium_sample\/results.xml\u00a0\u00bb<\/p>\n<p>Sauvegarder votre projet et lancer une build<\/p>\n<p>Celle-ci devrait \u00eatre en \u00e9chec ( ce qui est normal car il y&rsquo;a volontairement une erreur dans les tests )<br \/>\nVous pouvez consulter ses d\u00e9tails :<\/p>\n<p><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/jenkins-resultat-build.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-910\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/jenkins-resultat-build.jpg\" alt=\"Jenkins r\u00e9sultats build\" width=\"780\" height=\"252\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/jenkins-resultat-build.jpg 780w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/03\/jenkins-resultat-build-300x97.jpg 300w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/a><\/p>\n<p>Cliquer sur \u00ab\u00a0Console Output\u00a0\u00bb pour visualiser le r\u00e9sultat de votre build, et si\u00a0 le r\u00e9sultat est similaire au code ci-dessous , c&rsquo;est que tout est bien en place \ud83d\ude42<\/p>\n<pre lang=\"bash\">D\u00e9marr\u00e9 par l utilisateur anonymous\r\nBuilding in workspace \/home\/einternet\/jenkins\/sample_test\r\n[sample_test] $ \/bin\/sh -xe \/tmp\/hudson4434273508195668633.sh\r\n+ cd phpunit_selenium_sample\r\n+ phpunit --configuration phpunit.xml\r\nPHPUnit 4.5.0 by Sebastian Bergmann and contributors.\r\nConfiguration read from \/home\/einternet\/jenkins\/sample_test\/phpunit_selenium_sample\/phpunit.xml\r\n..F\r\nTime: 19.92 seconds, Memory: 5.25Mb\r\nThere was 1 failure:\r\n1) SeleniumTest::testTitleKo\r\nFailed asserting that two strings are equal.\r\n--- Expected\r\n+++ Actual\r\n@@ @@\r\n-'Wrong Title'\r\n+'Google'\r\n\/home\/user\/jenkins\/sample_test\/phpunit_selenium_sample\/SeleniumTest.php:28\r\nFAILURES!\r\nTests: 3, Assertions: 7, Failures: 1.\r\nBuild step 'Ex\u00e9cuter un script shell' marked build as failure\r\nEnregistrement des r\u00e9sultats des tests\r\nFinished: FAILURE\r\n<\/pre>\n<p>A vous de jouez pour mettre ce fonctionnement en place sur votre projet \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une fois l&rsquo;ensemble des \u00e9l\u00e9ments n\u00e9cessaires \u00e0 nos tests fonctionnels ( Installation des \u00e9l\u00e9ments n\u00e9cessaires aux tests fonctionnels ) en place, passons \u00e0 la partie suivante. L&rsquo;installation et la configuration de jenkins pour l\u2019ex\u00e9cution des tests fonctionnels. Installation de jenkins Pour installer jenkins saisissez les commandes suivantes wget -q -O &#8211; https:\/\/jenkins-ci.org\/debian\/jenkins-ci.org.key | sudo apt-key [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[6],"tags":[336,335,333,334],"class_list":["post-905","post","type-post","status-publish","format-standard","hentry","category-trucs-et-astuces","tag-integration-continue","tag-jenkins","tag-phpunit","tag-selenium"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=905"}],"version-history":[{"count":3,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/905\/revisions"}],"predecessor-version":[{"id":912,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/905\/revisions\/912"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}