De Jenkins Maven/Freestyle à Pipeline

De Jenkins Maven/Freestyle à Pipeline

Tools In Action effectué à #DevoxxFR 2016, pour montrer l'utilisation de Jenkins Pipeline plugin pour sortir des multi-jobs et avoir une définition unique du processus de Continuous Integration et de Continuous Delivery pour un projet.

8254814a3136a30724cd428841f8e155?s=128

Adrien Lecharpentier

April 20, 2016
Tweet

Transcript

  1. #JenkinsPipeline De Jenkins Maven / Freestyle à Pipeline Adrien Lecharpentier

    @alecharp #JenkinsPipeline 1
  2. #JenkinsPipeline Il est fréquent de devoir produire plusieurs livrables à

    partir du même code source : war, jar, Docker Image, etc. 2
  3. #JenkinsPipeline Il est fréquent de devoir produire plusieurs livrables à

    partir du même code source : war, jar, Docker Image, etc. Saviez-vous que pour arriver à ce but, il est nécessaire de configurer plusieurs jobs ? 3
  4. #JenkinsPipeline Il est fréquent de devoir produire plusieurs livrables à

    partir du même code source : war, jar, Docker Image, etc. Saviez-vous que pour arriver à ce but, il est nécessaire de configurer plusieurs jobs ? Saviez-vous que pour ordonnancer ces jobs, il est nécessaire de configurer 5 à 10 plugins ? 4
  5. #JenkinsPipeline Il est fréquent de devoir produire plusieurs livrables à

    partir du même code source : war, jar, Docker Image, etc. Saviez-vous que pour arriver à ce but, il est nécessaire de configurer plusieurs jobs ? Saviez-vous que pour ordonnancer ces jobs, il est nécessaire de configurer 5 à 10 plugins ? Parallèlement à cela, saviez-vous qu’il nest pas possible de versioner la configuration des jobs avec le projet ? 5
  6. #JenkinsPipeline /me Support Engineer @ CloudBees @alecharp (everywhere) 6

  7. #JenkinsPipeline Pipeline 7 DSL pour décrire la construction d’un projet

    1.0 : 25/11/2014 2.0 : 05/04/2016 Intégration aux plugins en cours (goo.gl/5lg30v) Standard avec Jenkins 2.0
  8. #JenkinsPipeline Quick word: Jenkins 2.0 8 Date de release :

    21/04/2016 Meilleure UI, meilleure UX (…) Migration 1.x → 2.0 Pipeline-as-code par défaut Questions : BOF Jenkins Jeudi
  9. #JenkinsPipeline Cas d'utilisation 9 1. Projet Maven 1. jar auto-executable

    2. Création d’une image Docker
  10. #JenkinsPipeline It’s demo-time! 10

  11. #JenkinsPipeline Quoi d'neuf Docker - live : Docker sur ARM

    11
  12. #JenkinsPipeline (Jenkins, Docker) -> { Orchestrons le Continuous Delivery }

    12
  13. #JenkinsPipeline Questions 13

  14. #JenkinsPipeline Comment mutualiser des parties de Pipeline? 14 Il est

    possible d’utiliser Pipeline Global Library pour avoir un repository Git dans Jenkins qui fournira des classes, variables globales ou des functions utilisables au sein du Pipeline. https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared +Groovy+Libraries+Plugin
  15. #JenkinsPipeline Est-ce que Pipeline est disponible sur Jenkins 1.x? 15

    Les dernières versions de Pipeline nécessite l’utilisation de Jenkins 1.642.3 minimum. Mais le plugin a été introduit à l’origine sur la version 1.580.1 de Jenkins. Il est toutefois grandement recommandé d’utiliser la dernière LTS pour avoir toutes les fonctionnalités et bugfix de Pipeline.
  16. #JenkinsPipeline Pourquoi Pipeline est dorénavant en 2.0? 16 Les plugins

    Pipeline étaient initialement regroupés dans un même repository et étaient tous releasés en même temps. Seulement avec la maturité acquise des plugins, ils sont maintenant répartis sur des repositories Git différents pour facilité leurs améliorations, bugfixes et releases.
  17. #JenkinsPipeline Source 17 Jenkins 2.0 : https://jenkins.io/2.0/ Jenkins Pipeline :

    https://jenkins.io/doc/pipeline Projet : https://github.com/alecharp/simple-app.git