Jenkins Best Practices

37
Jenkins Best Practices cheppers.com By Gergely Brautigam @ Cheppers

Transcript of Jenkins Best Practices

Page 1: Jenkins Best Practices

Jenkins Best Practices

cheppers.com

By Gergely Brautigam @ Cheppers

Page 2: Jenkins Best Practices

Links

• Github: https://github.com/Skarlso/jenkinsbestpractices

• Docker Hub: https://hub.docker.com/r/skarlso/jenkinsbestpractices/

Page 3: Jenkins Best Practices

Basics — UIhttps://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin

Page 4: Jenkins Best Practices

Before SimpleTheme Plugin

Page 5: Jenkins Best Practices

After SimpleTheme Plugin

Page 6: Jenkins Best Practices

Basics - Config Histroy

https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin

Page 7: Jenkins Best Practices

Diff YourConfiguration

Page 8: Jenkins Best Practices

Basics - Rebuildhttps://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin

Page 9: Jenkins Best Practices

Rebuild yourPrevious Job

Page 10: Jenkins Best Practices

Basics - Mask Password

https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

Page 11: Jenkins Best Practices

No More Leaksin the Logs

Page 12: Jenkins Best Practices

Advanced - Foldershttps://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Folders+Plugin

Page 13: Jenkins Best Practices

Folders forBranching

Page 14: Jenkins Best Practices

Usages for Folders

Orignizing

Clean Workspaceand Environment

‘All View’ is not cluttered

Branches — Combined with…

Page 15: Jenkins Best Practices

Advanced - DSLhttps://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

Page 16: Jenkins Best Practices

Never UseConfigurationScreen Again

Page 17: Jenkins Best Practices

Single SeedJob To RuleThem All

Page 18: Jenkins Best Practices

BranchingWithDSL + Folders

Groovy Config

Jobs Groovy File lives next to the source code. Or could be in its own repository.

Page 19: Jenkins Best Practices

Advanced - Artifactshttps://wiki.jenkins-ci.org/display/JENKINS/Nexus+Artifact+Uploader

https://wiki.jenkins-ci.org/display/JENKINS/ArtifactDeployer+Plugin

Page 20: Jenkins Best Practices

Sharing BetweenJenkins 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

Page 21: Jenkins Best Practices

Nexus

Page 22: Jenkins Best Practices

Artifactory

Page 23: Jenkins Best Practices

Advanced - MultiJobhttps://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin

Page 24: Jenkins Best Practices

Parallel TestRuns With MultiJob

Page 25: Jenkins Best Practices

Expert - Pretested Integration

https://wiki.jenkins-ci.org/display/JENKINS/Pretested+Integration+Plugin

Page 26: Jenkins Best Practices

Branch Setup

Page 27: Jenkins Best Practices

Pretest Setup

Page 28: Jenkins Best Practices

Push Local BranchTo ‘Ready’ Branch

git push origin BFG-321:ready/BFG-321

Page 29: Jenkins Best Practices

Expert - Pipelines + Jenkins 2.0

Page 30: Jenkins Best Practices

• Everything you saw here — integrated

• Pipeline — Previously known as workflow

Page 31: Jenkins Best Practices

Pipeline File

Page 32: Jenkins Best Practices

Pipeline View

Page 33: Jenkins Best Practices

Pipeline MultiBranch Fetch Configuration

Page 34: Jenkins Best Practices

Pipelines - MultiBranch - Run builds

Only builds branches which have ‘Jenkinsfile’ at root

Page 35: Jenkins Best Practices

Bonus Round

Page 36: Jenkins Best Practices

• Packer / Vagrant / Docker provisioning of build slaves and test environments

• Configuration management for credentials

• Load Balancing Jenkins slaves

Page 37: Jenkins Best Practices

THANK YOUQUESTIONS?