Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jenkins 2 et Pipeline-as-Code

Jenkins 2 et Pipeline-as-Code

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

Adrien Lecharpentier

November 24, 2016
Tweet

More Decks by Adrien Lecharpentier

Other Decks in Technology

Transcript

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

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

    évolue. Certaines choses peuvent avoir changées.
  3. 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
  4. JENKINS 2 ✔ Pas de rupture avec Jenkins 1 ➜

    Monté de version simple ✔ Tous les plugins restent compatible (~)
  5. PIPELINE-AS-CODE • Fichier Jenkinsfile avec le source-code • DSL basé

    sur groovy • sandbox • extensible • Pipeline model definition • pur DSL
  6. 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
  7. FAQ

  8. 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"
  9. 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.
  10. 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.