Synchronizing parallel delivery flows in Jenkins using Groovy, BuildFlow and a bit of black magic Andrey Devyatkin, Automation Nights v15.09-STHLM
Andrey Devyatkin, @andrey9kin ● Continuous Deliverer (CoDe:er with DevOps at heart) ● Coach ● Open Source enthusiast ● Traveler, runner, martial artist Recent noticeable projects ● Continuous delivery pipeline setup for Ericsson new generation radio products ● ClearCase -> Git migration for 1000+ employees, 5-sites, 100 MLOC, 10 years legacy project
Problem How to secure delivery order in the long-running- delivery-pipeline as well as enable concurrent pipelines executions? Example: ● SCM check out can run concurrently, but the changelog computation requires that the check out of the earlier build has completed ● Sending out an e-mail with test results requires info about the previous build, so that we can decide an e-mail is necessary or not ● Rolling out database schema updates ● Delivering incremental changes to users Image source: http://desigeek.com/blog/amit/2010/08/08/race-conditions-explained/
Problem 3 4 2 1 Build Build Build Build Pack Pack Pack Test Test Test Test Test Deploy We are heading to the trouble here!
Idea Use Jenkins CheckPoint API in order to sync pipelines implemented using Groovy and BuildFlow (potentially WorkFlow) Image source: http://delivervalue.blogspot.se/2013/06/more-advanced-build-flows-with-jenkins.html
Tools ● Docker ● Jenkins ● JobDSL ● Groovy ● BuildFlow Image source: http://365psd.com/psd/drawing-tools-icon-psd-53148
Setup https://github.com/Andrey9kin/jenkins-checkpoints-demo
Thank you!

Synchronizing parallel delivery flows in jenkins using groovy, build flow and a bit of black magic

  • 1.
    Synchronizing parallel deliveryflows in Jenkins using Groovy, BuildFlow and a bit of black magic Andrey Devyatkin, Automation Nights v15.09-STHLM
  • 2.
    Andrey Devyatkin, @andrey9kin ●Continuous Deliverer (CoDe:er with DevOps at heart) ● Coach ● Open Source enthusiast ● Traveler, runner, martial artist Recent noticeable projects ● Continuous delivery pipeline setup for Ericsson new generation radio products ● ClearCase -> Git migration for 1000+ employees, 5-sites, 100 MLOC, 10 years legacy project
  • 3.
    Problem How to securedelivery order in the long-running- delivery-pipeline as well as enable concurrent pipelines executions? Example: ● SCM check out can run concurrently, but the changelog computation requires that the check out of the earlier build has completed ● Sending out an e-mail with test results requires info about the previous build, so that we can decide an e-mail is necessary or not ● Rolling out database schema updates ● Delivering incremental changes to users Image source: http://desigeek.com/blog/amit/2010/08/08/race-conditions-explained/
  • 4.
  • 5.
    Idea Use Jenkins CheckPointAPI in order to sync pipelines implemented using Groovy and BuildFlow (potentially WorkFlow) Image source: http://delivervalue.blogspot.se/2013/06/more-advanced-build-flows-with-jenkins.html
  • 6.
    Tools ● Docker ● Jenkins ●JobDSL ● Groovy ● BuildFlow Image source: http://365psd.com/psd/drawing-tools-icon-psd-53148
  • 7.
  • 8.