Jenkins Best Practices
cheppers.com
By Gergely Brautigam
@ Cheppers
Links
• Github: https://github.com/Skarlso/jenkinsbestpractices
• Docker Hub: https://hub.docker.com/r/skarlso/
jenkinsbestpractices/
Basics — UI
https://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin
Before Simple
Theme Plugin
After Simple
Theme Plugin
Basics - Config Histroy
https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin
Diff Your
Configuration
Basics - Rebuild
https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin
Rebuild your
Previous Job
Basics - Mask Password
https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin
No More Leaks
in the Logs
Advanced - Folders
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Folders+Plugin
Folders for
Branching
Usages for Folders
Orignizing
Clean Workspace
and Environment
‘All View’ is not cluttered
Branches — Combined with…
Advanced - DSL
https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin
Never Use
Configuration
Screen Again
Single Seed
Job To Rule
Them All
Branching
With
DSL + Folders
Groovy Config
Jobs Groovy File lives
next to the source
code. Or could be in its
own repository.
Advanced - Artifacts
https://wiki.jenkins-ci.org/display/JENKINS/Nexus+Artifact+Uploader
https://wiki.jenkins-ci.org/display/JENKINS/ArtifactDeployer+Plugin
Sharing Between
Jenkins Instances
Multiple Jenkins Instances
For jobs that interact with each
other based on artifacts they
generate, use a common artifact
repository for storing, and sharing
said artifacts with fingerprints.
Nexus
Artifactory
Nexus
Artifactory
Advanced - MultiJob
https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin
Parallel Test
Runs With MultiJob
Expert - Pretested
Integration
https://wiki.jenkins-ci.org/display/JENKINS/Pretested+Integration+Plugin
Branch Setup
Pretest Setup
Push Local Branch
To ‘Ready’ Branch
git push origin BFG-321:ready/BFG-321
Expert - Pipelines +
Jenkins 2.0
• Everything you saw here — integrated
• Pipeline — Previously known as workflow
Pipeline File
Pipeline View
Pipeline MultiBranch Fetch Configuration
Pipelines - MultiBranch - Run builds
Only builds branches which have ‘Jenkinsfile’ at root
Bonus Round
• Packer / Vagrant / Docker provisioning of build
slaves and test environments
• Configuration management for credentials
• Load Balancing Jenkins slaves
THANK YOU
QUESTIONS?

Jenkins Best Practices