Jenkins Pipeline(previamente Workflow)
Continuous Delivery
• Definición de una línea de entrega
• Control de fases
• Fiabilidad
• Flexibilidad
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
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
Un poco de historia1. Build Flow Plugin
b = build( "job1", param1: "foo", param2: "bar" ) build( "job2", param1: b.build.number )
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
Jenkins Pipeline
• Definición de una línea de entrega (build, stage)
• Control de fases (stage, input)
• Fiabilidad (restarts y resume)
• Flexibilidad (groovy)
El presente1. Pipeline Pluginparallel 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’ } }
El presente1. 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’ }
PipelineDefinició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’ }
PipelineDefinición de la línea de entrega (pipeline)
PipelineControl 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’ }
PipelineFiabilidad
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’ }
–Spiderman uncle
“Un gran poder conlleva una gran responsabilidad”
Top Related