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. 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. Un poco de historia
1. Build Flow Plugin
b = build( "job1", param1: "foo", param2: "bar" )
build( "job2", param1: b.build.number )
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. Jenkins Pipeline
• Definición de una línea de entrega (build, stage)
• Control de fases (stage, input)
• Fiabilidad (restarts y resume)
• Flexibilidad (groovy)
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. 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. 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’
}