SlideShare a Scribd company logo
2
Most read
3
Most read
19
Most read
Jenkins
& Continuous Integration
What is Continuous integration
 A development methodology
 Of daily developer integrations
 Verified by automated builds
 Every commit triggers a build
As soon as you have completed an independent functionality
A full build on another, empty machine
Why use continuous integration
 Automate the build
 Make the build self testing
 Keep the build fast
 Test in a clone of the production environment
 Everyone can see what's happening
 Automate deployment
Self-testing build
 Directly go from source to running build
No manual copying
No click on dialog boxes
No configuration file editing
 Test with
Unit tests
Functional tests (web tests)
Performance tests
 Responsible persons should be notified when
anything fails
 Tests web in more browsers
Why Jenkins?
● Continuous integration server - detects changes
in Subversion, performs tasks, repeatedly.
(Build, Test, Deploy, Test, Package)
● Seven years old approx
● 47000+ installations
● 600+ plugins
● Free !!!!!!
Jenkins Demo
docker run -p 8080:8080 -p 50000:50000
jenkins/jenkins:lts
java -jar jenkins.war -httpPort=8080
Configuration as Code
• Define jobs/pipelines as code
• Avoid point & click
• In version control
• Can live with the application
• Scales better
• Example: .travis.yml (from TravisCI)
• Similar to GitlabCI
Job Pipelines
●Job - a unit of work for a project
You can chain jobs together in a pipeline.
Promotion occurs when a job succeeds
Then the next job in the pipeline executes
(based on some conditions)
Jenkins Pipeline Plugins
• Whole suite of plugins (10+), open-sourced in 2016
• Shipped with Jenkins 2.0
• Formerly commercially available by CloudBees, called Work
• Define pipeline as code (again Groovy DSL)
Pipeline as code
• Introduce “Pipeline” as a new type in Jenkins
• Codify an implicit series of stages into an explicit pip
• Resumability/durability of pipeline state
• Extend the DSL to meet organizational needs
Jenkins Job DLS Steps
Jenkinsfile describe pipeline using Jenkins Pipeline DSL
Jenkins Pipeline DSL consist of steps like:
stage: starts a new pipeline stage
node: executes steps on an agent (node) with the
corresponding name / label
checkout: checkouts code from SCM (e.g. Git or SVN)
sh: executes command line or shell script
bat: executes Windows command line or script
junit: publishes JUnit test results
Sample nodejs pipeline
node('testing') {
stage('Initialize') {
echo 'Initializing...'
def node = tool name: 'Node-7.4.0', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
env.PATH = "${node}/bin:${env.PATH}"
}
stage('Checkout') {
echo 'Getting source code...'
checkout scm
}
stage('Build') {
echo 'Building dependencies...'
sh 'npm i'
}
stage('Test') {
echo 'Testing...'
sh 'npm test'
}
stage('Publish') {
echo ‘Publishing report...'
}
}
Workflow-stage
●https://jenkins.cloudops.careerbuilder.com/job/RecruitmentPlatform/job/wfa-ts/job/Publish/workflow-stage/
Plugins that support Pipeline
• A few plugins which provide custom steps for Pipeline scripts:
- Tooling: Credentials binding, SSH Agent, Parallel Test
- Reporters: JUnit, Brakeman, HTML Publisher, Cucumber Test
- Notifiers: Slack, HipChat, email-ext
- Wrappers: Timestamper
• Plugins work within Pipelines
- SCM: Git, SVN, Mercurial, P4, CV
- Wrappers: Ansi Color, NodeJS
- Build steps: Ant, etc
Parallel Execution of Steps
parallel(
//Both deployments are executed in parallel
deployToEnv1: {
node('environment-1') {
deploy(…)
}
},
deployToEnv2: {
node(environment-2') {
deploy(…)
}
}
)
//Execution continues after the longer step
finishes
Use existing plugins in pipeline
 It is possible to use existing Jenkins Plug-ins if they added Pipeline support
 Majority of popular Jenkins plug-ins support Pipeline already (see list here)
 E.g. Email-Ext plug-in:
emailext(
subject: "Build #$buildNumber, $status",
recipientProviders:'CulpritsRecipientProvider'
…
)
Docker Support
Jenkins Pipeline also provides Docker support
See Orchestrating Workflows with Jenkins and Docker
docker.image('.../java8-maven').inside {
checkout svn
sh 'mvn -B clean install'
}
wfa-ts/Publish.Jenkinsfile
CloudOps/blob/master/Jenkins/Pipelines/RecruitmentPlatform/wfa
Blue Ocean Plugin
 Jenkins will soon get a new UI optimized for pipelines:
Blue Ocean – see the following slides
 It can be installed from the experimental update center:
http://updates.jenkins-ci.org/experimental/update-
center.json
New UI –Blue Ocean

More Related Content

PPTX
Jenkins CI
PPTX
PPTX
PDF
Terraforming your Infrastructure on GCP
PPT
Jenkins Overview
PPTX
Introduction to jenkins
PPTX
Jenkins Introduction
Jenkins CI
Terraforming your Infrastructure on GCP
Jenkins Overview
Introduction to jenkins
Jenkins Introduction

What's hot (20)

PPTX
Jenkins CI presentation
PDF
Jenkins
PDF
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
ODP
An Introduction To Jenkins
PDF
Jenkins tutorial
PDF
Jenkins Pipelines
PPTX
Jenkins tutorial for beginners
PDF
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
PPTX
Jenkins tutorial
PPT
CI and CD with Jenkins
PDF
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PPTX
Getting started with Jenkins
PDF
Introduction to CICD
PPTX
CI/CD Overview
PPTX
CI/CD
PPTX
Gitlab CI/CD
PPTX
Introduction to CI/CD
PDF
Jenkins with SonarQube
PDF
Introduction to GitHub Actions
Jenkins CI presentation
Jenkins
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
An Introduction To Jenkins
Jenkins tutorial
Jenkins Pipelines
Jenkins tutorial for beginners
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
Jenkins tutorial
CI and CD with Jenkins
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Getting started with Jenkins
Introduction to CICD
CI/CD Overview
CI/CD
Gitlab CI/CD
Introduction to CI/CD
Jenkins with SonarQube
Introduction to GitHub Actions
Ad

Similar to Jenkins presentation (20)

PDF
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
PPTX
Jenkins days workshop pipelines - Eric Long
PDF
Atlanta Jenkins Area Meetup October 22nd 2015
KEY
Testing with Jenkins, Selenium and Continuous Deployment
PDF
(Declarative) Jenkins Pipelines
PPTX
Pipeline as code - new feature in Jenkins 2
PDF
413450-rc218-cdw-jenkins-workflow
PDF
Release with confidence
PDF
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
PDF
Continuous Integration using Jenkins with Python
PDF
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
PPTX
Jenkins Pipeline 101 and TCI - presentation and workshop
PDF
Jenkins CI
PPTX
FV04_MostoviczT_RAD
PDF
Building an Extensible, Resumable DSL on Top of Apache Groovy
PDF
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
PPTX
varun JENKINS.pptx
PPTX
Continuous Integration With Jenkins Docker SQL Server
PDF
Jenkins CI for MacDevOps
PDF
Stockholm Jenkins Area Meetup, March 2017
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins days workshop pipelines - Eric Long
Atlanta Jenkins Area Meetup October 22nd 2015
Testing with Jenkins, Selenium and Continuous Deployment
(Declarative) Jenkins Pipelines
Pipeline as code - new feature in Jenkins 2
413450-rc218-cdw-jenkins-workflow
Release with confidence
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
Continuous Integration using Jenkins with Python
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins CI
FV04_MostoviczT_RAD
Building an Extensible, Resumable DSL on Top of Apache Groovy
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
varun JENKINS.pptx
Continuous Integration With Jenkins Docker SQL Server
Jenkins CI for MacDevOps
Stockholm Jenkins Area Meetup, March 2017
Ad

Recently uploaded (20)

PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Transform Your Business with a Software ERP System
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Introduction to Artificial Intelligence
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
top salesforce developer skills in 2025.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Digital Strategies for Manufacturing Companies
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Nekopoi APK 2025 free lastest update
PDF
medical staffing services at VALiNTRY
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
How Creative Agencies Leverage Project Management Software.pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Transform Your Business with a Software ERP System
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction to Artificial Intelligence
Navsoft: AI-Powered Business Solutions & Custom Software Development
How to Migrate SBCGlobal Email to Yahoo Easily
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Design an Analysis of Algorithms I-SECS-1021-03
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
top salesforce developer skills in 2025.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Digital Strategies for Manufacturing Companies
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Nekopoi APK 2025 free lastest update
medical staffing services at VALiNTRY

Jenkins presentation

  • 2. What is Continuous integration  A development methodology  Of daily developer integrations  Verified by automated builds  Every commit triggers a build As soon as you have completed an independent functionality A full build on another, empty machine
  • 3. Why use continuous integration  Automate the build  Make the build self testing  Keep the build fast  Test in a clone of the production environment  Everyone can see what's happening  Automate deployment
  • 4. Self-testing build  Directly go from source to running build No manual copying No click on dialog boxes No configuration file editing  Test with Unit tests Functional tests (web tests) Performance tests  Responsible persons should be notified when anything fails  Tests web in more browsers
  • 5. Why Jenkins? ● Continuous integration server - detects changes in Subversion, performs tasks, repeatedly. (Build, Test, Deploy, Test, Package) ● Seven years old approx ● 47000+ installations ● 600+ plugins ● Free !!!!!!
  • 6. Jenkins Demo docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts java -jar jenkins.war -httpPort=8080
  • 7. Configuration as Code • Define jobs/pipelines as code • Avoid point & click • In version control • Can live with the application • Scales better • Example: .travis.yml (from TravisCI) • Similar to GitlabCI
  • 8. Job Pipelines ●Job - a unit of work for a project You can chain jobs together in a pipeline. Promotion occurs when a job succeeds Then the next job in the pipeline executes (based on some conditions)
  • 9. Jenkins Pipeline Plugins • Whole suite of plugins (10+), open-sourced in 2016 • Shipped with Jenkins 2.0 • Formerly commercially available by CloudBees, called Work • Define pipeline as code (again Groovy DSL)
  • 10. Pipeline as code • Introduce “Pipeline” as a new type in Jenkins • Codify an implicit series of stages into an explicit pip • Resumability/durability of pipeline state • Extend the DSL to meet organizational needs
  • 11. Jenkins Job DLS Steps Jenkinsfile describe pipeline using Jenkins Pipeline DSL Jenkins Pipeline DSL consist of steps like: stage: starts a new pipeline stage node: executes steps on an agent (node) with the corresponding name / label checkout: checkouts code from SCM (e.g. Git or SVN) sh: executes command line or shell script bat: executes Windows command line or script junit: publishes JUnit test results
  • 12. Sample nodejs pipeline node('testing') { stage('Initialize') { echo 'Initializing...' def node = tool name: 'Node-7.4.0', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation' env.PATH = "${node}/bin:${env.PATH}" } stage('Checkout') { echo 'Getting source code...' checkout scm } stage('Build') { echo 'Building dependencies...' sh 'npm i' } stage('Test') { echo 'Testing...' sh 'npm test' } stage('Publish') { echo ‘Publishing report...' } }
  • 14. Plugins that support Pipeline • A few plugins which provide custom steps for Pipeline scripts: - Tooling: Credentials binding, SSH Agent, Parallel Test - Reporters: JUnit, Brakeman, HTML Publisher, Cucumber Test - Notifiers: Slack, HipChat, email-ext - Wrappers: Timestamper • Plugins work within Pipelines - SCM: Git, SVN, Mercurial, P4, CV - Wrappers: Ansi Color, NodeJS - Build steps: Ant, etc
  • 15. Parallel Execution of Steps parallel( //Both deployments are executed in parallel deployToEnv1: { node('environment-1') { deploy(…) } }, deployToEnv2: { node(environment-2') { deploy(…) } } ) //Execution continues after the longer step finishes
  • 16. Use existing plugins in pipeline  It is possible to use existing Jenkins Plug-ins if they added Pipeline support  Majority of popular Jenkins plug-ins support Pipeline already (see list here)  E.g. Email-Ext plug-in: emailext( subject: "Build #$buildNumber, $status", recipientProviders:'CulpritsRecipientProvider' … )
  • 17. Docker Support Jenkins Pipeline also provides Docker support See Orchestrating Workflows with Jenkins and Docker docker.image('.../java8-maven').inside { checkout svn sh 'mvn -B clean install' }
  • 19. Blue Ocean Plugin  Jenkins will soon get a new UI optimized for pipelines: Blue Ocean – see the following slides  It can be installed from the experimental update center: http://updates.jenkins-ci.org/experimental/update- center.json New UI –Blue Ocean