Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jenkins Pipeline - Seville JAM

1,370 views

Published on

Seville JAM (Jenkins Area Meetup) talk about Jenkins Pipeline.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Jenkins Pipeline - Seville JAM

  1. 1. Jenkins Pipeline (previamente Workflow)
  2. 2. Continuous Delivery • Definición de una línea de entrega • Control de fases • Fiabilidad • Flexibilidad
  3. 3. Un poco de historia 1. Downstream jobs • Definición de dependencias entre jobs (en la propia configuración de cada job) • Grafo de dependencias invisible/inmanejable • Rígido, sin comunicación entre jobs
  4. 4. Un poco de historia 1. Build Flow Plugin • Definición de dependencias entre jobs (mediante un meta-job que define el flujo) • Rígido, sintaxis limitada • Sólo permite encadenar una sería de jobs
  5. 5. Un poco de historia 1. Build Flow Plugin b = build( "job1", param1: "foo", param2: "bar" ) build( "job2", param1: b.build.number )
  6. 6. El presente 1. Pipeline Plugin • Definición de dependencias entre jobs (mediante un meta-job que define el flujo) • Flexible, tanto como Groovy • Posibilidad de definir qué sucede entre dos steps
  7. 7. Jenkins Pipeline • Definición de una línea de entrega (build, stage) • Control de fases (stage, input) • Fiabilidad (restarts y resume) • Flexibilidad (groovy)
  8. 8. El presente 1. Pipeline Plugin parallel linux { node(‘linux-worker’) { git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ } }, windows { node(‘windows-worker’) { git ‘https://github.com/amuniz/maven-hello’ bat ‘mvn clean install’ } }
  9. 9. El presente 1. Pipeline Plugin node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  10. 10. Pipeline Definición de la línea de entrega (pipeline) node { stage ‘Build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ‘Deploy’, concurrency: 1 sh ‘mvn deploy’ }
  11. 11. Pipeline Definición de la línea de entrega (pipeline)
  12. 12. Pipeline Control de fases node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  13. 13. Pipeline Fiabilidad node { stage ‘build’ git ‘https://github.com/amuniz/maven-hello’ sh ‘mvn clean install’ input ‘Todo correcto?’ ———— Jenkins restart ———— stage name: ’deploy’, concurrency: 1 sh ‘mvn deploy’ }
  14. 14. –Spiderman uncle “Un gran poder conlleva una gran responsabilidad”
  15. 15. Antonio Muñiz @amunizmartin amuniz@cloudbees.com Sevilla y olé! Preguntas?

×