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
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. 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
https://jenkins.io/blog/2018/06/15/simple-pull-request-plugin/
● Still no possibility to restart pipeline from certain point
https://issues.jenkins-ci.org/browse/JENKINS-33846
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
org.jenkinsci.plugins.workflow.job.properties.DisableResumeJobProperty
12. Things to look into
● Jenkins X
● Jenkins Configuration As Code
13.
14. 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:
https://github.com/Praqma/praqma-jenkins-casc"
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:
https://raw.githubusercontent.com/Praqma/praqma-jenkins-casc/master/jenkins.yaml