Jenkins 2 et Pipeline-as-Code

Jenkins 2 et Pipeline-as-Code

Support utilisé pour ma tournée des JUG en Novembre 2016

8254814a3136a30724cd428841f8e155?s=128

Adrien Lecharpentier

November 24, 2016
Tweet

Transcript

  1. JENKINS 2 & PIPELINE-AS-CODE JUG-Tour Adrien Lecharpentier

  2. alecharp twitter / github / apache Utilisateur / Admin Jenkins

    depuis 2008 Committer Apache (archiva) Contributeur Jenkins Support Engineer @ CloudBees Certifié CloudBees Jenkins Platform Engineer
  3. DISCLAIMER • Je parle ici d’un projet qui vie et

    évolue. Certaines choses peuvent avoir changées.
  4. JENKINS 2?

  5. POURQUOI JENKINS 2? • Parce que Jenkins 1 a(vait) 10ans

    • 1.658 • acegi-security:1.0.7 — Avril 2008 • spring-core:2.5.6 — Octobre 2008 • Parce que l’intégration continue a évolué • jenkins-ci.org!? • slave ➞ agent • Expérience première utilisation
  6. JENKINS 2 ✔ Pas de rupture avec Jenkins 1 ➜

    Monté de version simple ✔ Tous les plugins restent compatible (~)
  7. #JENKINS.IO

  8. None
  9. #PLUGINSTORE

  10. None
  11. None
  12. None
  13. None
  14. PLUGINS.JENKINS.IO

  15. #SECURITY-FIRST

  16. None
  17. #PLUGINS SET

  18. None
  19. None
  20. #PIPELINE-AS-CODE

  21. PIPELINE-AS-CODE Développeurs reprennent la main Sans que Jenkins devienne "open

    bar"
  22. PIPELINE-AS-CODE • Fichier Jenkinsfile avec le source-code • DSL basé

    sur groovy • sandbox • extensible • Pipeline model definition • pur DSL
  23. EN DEVENIR

  24. #BLUEOCEAN

  25. None
  26. None
  27. None
  28. None
  29. #BACK-END STORAGE

  30. DEMO

  31. -Edward A. Murphy Jr « Anything that can go wrong,

    will go wrong. »
  32. QUESTIONS?

  33. RESOURCES • Plugins • Pipeline Stage View • BlueOcean (jenkins.io/projects/blueocean

    & ci.blueocean.io) • CloudBees Docker Pipeline • Pipeline Utility Step • Project • github.com/alecharp/simple-app & github.com/alecharp/build-tools • Shared Library • github.com/alecharp/jenkins-library
  34. FAQ

  35. FAQ#1 ➜ Comment peut-on déclencher des jobs classique depuis un

    Pipeline, pour l’utiliser comme orchestrateur? ✔ en utilisant le mot-clé build, il est possible de démarrer un autre job, avant ou sans paramètre. Cependant, utiliser Pipeline comme simple orchestrateur est réducteur et ne permet pas d’avoir une gestion des branches "automatique"
  36. FAQ#2 ➜ Quand différents projets sont construits de la même

    façon, comment peut-on simplifier l’écriture des Jenkinsfile? ✔ Dans ce cas, il faut voir les Pipeline Shared Libraries. Il s’agit d’un "projet" qui va contenir des fonctions, variables globales et/ ou des classes, en groovy, que l’on pourra utiliser dans les Jenkinsfile ou Pipeline. J’en fait l’usage dans github.com/ alecharp/build-tools (voir les branches) et la définition se trouve dans github.com/alecharp/jenkins-library.
  37. FAQ#3 ➜ Est-ce que BlueOcean sera, à terme, un remplacement

    de l’interface de Jenkins? ✔ Je pense que oui. BlueOcean n’est pas seulement une interface, mais apporte une nouvelle façon d’utiliser Jenkins. Il y a encore des choses à développer sur ce plugin, mais il est déjà utilisable pour la visualisation des exécutions de jobs. Installez-le et essayez-le, c’est le meilleur moyen pour permettre aux développeurs de l’améliorer.