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.

Stockholm JAM September 2018


Published on

Presentation given at Stockholm JAM September 2018

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Stockholm JAM September 2018

  1. 1. The state of Jenkins pipelines or do I still need freestyle jobs? Stockholm JAM September 2018
  2. 2. This talk is not… or at least trying not to be
  3. 3. Back in the days...
  4. 4. Downstream, join plugin, jobdsl plugin (2009)
  5. 5. Build flow plugin (2012)
  6. 6. Meanwhile… (2011-2012)
  7. 7. Difference ● Hosted ● Almost no server configuration (web hooks mess, workers etc) ● YAML/Declarative pipelines ● Stored together with code ● By default do not have SCM block ● Always triggered by SCM (or SCM related - like PR) event
  8. 8. Workflow -> Pipelines -> Jenkinsfile (2014)
  9. 9. What was different ● Imperative ● Groovy and DSL ● Resumable ● Pain - plugins support, security, nonCPS ● Burden of legacy ● Eventually declarative pipelines. Kind of ● Visualization mess ● Shared libraries ● Multibranch
  10. 10. Where are we today? ● Multibranch/GitHub ● Most of the plugins supported ● Good documentation ● Declarative pipeline… if you don’t go scripted ● Visualisation kind of works… if you don’t go scripted ● Possibly YAML-based pipelines ● Still no possibility to restart pipeline from certain point
  11. 11. Where would I still go freestyle or scripted? ● Simple utility jobs unrelated to CI/CD of the target - stuff that you don’t put to the Jenkinsfile ● Conditional stages (think test/build avoidance) ● Complex workflow with the need to restart the flow from the certain point ● Want to avoid to resuming of the pipeline after restart and do not want to set
  12. 12. Things to look into ● Jenkins X ● Jenkins Configuration As Code
  13. 13. jenkins: systemMessage: "Welcome to the demo setup for Jenkins Configuration as Code plugin. For more information look in the official repo with our demo setup:" agentProtocols: - "JNLP4-connect" securityRealm: local: allowsSignup: false users: - id: demoAdmin password: ${adminpw:-passw0rd} authorizationStrategy: globalMatrix: grantedPermissions: - "Overall/Read:anonymous" - "Job/Read:anonymous" - "View/Read:anonymous" - "Overall/Administer:authenticated" crumbIssuer: "standard" credentials: