Jenkins Pipeline
About us
Michaël Pailloncy
Baptiste Mathus
Continuous Delivery
Continuous Delivery
Extends Continuous Integration best practices to production
Goals :
Each commit* = Deployable artifact to any environment
*or logical group of commits
What are commits unreleased to production?
What are commits unreleased to production?
Reduce chunk size
Release Early, Release Often
Bring confidence over deployment process
Repeatable and reliable
Same process, same tools on each environment
Bring confidence over artifact quality
Bring confidence over artifact quality
Automation
A human decision is required before deploy to production
=> Business decision
Continuous Delivery
!=
Continuous Deployment
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
There is no difference between theory and practice.
In practice there is.
Yogi Berra
Continuous Delivery - Not that easy ...
Continuous Delivery - Not that easy ...
How to describe how my code goes �from commit to production?
Continuous Delivery - Not that easy ...
How to implement this in a �readable and robust manner?
Jenkins Pipeline*
* formerly known as Workflow [Plugin]
Jenkins Pipeline Plugin(s)
Jenkins Pipeline Plugin(s)
Workshop overview
Workshop resources
Workshop #1
Jenkins Pipeline Basics
Scripted Pipeline vs Declarative Pipeline
Jenkins Declarative Pipeline (1/2)
Jenkins Declarative Pipeline (2/2)
Pipeline As Code - Jenkinsfile
GitHub Organization & BitBucket Team/Project job types
BlueOcean
BlueOcean
Workshop #2
Pipeline As Code
Global Shared Library
Shared libraries
@Library(“my-shared-repository”)
Permits to reuse some part of code
DRY
SCM repository with some conventions :
Optionally implicitly loaded
(library step available since 2.7, �released March, 3rd 2017)
Example
Workshop #3
Deployment
Conclusion
Questions ?