SlideShare a Scribd company logo
3
Most read
8
Most read
13
Most read
Continuous Integration with Jenkins CI
Jan Riemann und Niklas Lochschmidt
Late Integration is… not good
Can Lead to “Big Bang Integration”




              External Project




Master

                                                                                                Integration   Deliverable




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann                    2
Continuous Integration


                    External Project




Master

§  A software development practice
§  Integrate your work in the project as often as possible
  §  At least once a day                                                                             Deliverable
  §  Integration goes alongside the development à continuous
§  Integration is no longer a dreadful (often postponed) event                                       Integration
§  Only possible through automated builds, tests and deployment
  §  Leads to better quality and early deliverables
08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann         3
CI Best Practices


                            §  Maintain a single source repository
                               §  One team has one repository holding the mainline (trunk)
                               §  Checkout must include everything needed for the build



                            §  Automate the build
                               §  Use a script or a build tool (e.g. Maven)
                               §  Manage dependencies
                               §  Make the build fast
                               §  Show all warnings and errors
                               §  Fail early




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   4
CI Best Practices

§  Make your build self-testing
  §  Run tests as part of the build process
  §  Provide rapid feedback                                                                          Integration
      §  define a test pipeline with distinct test phases                                               Tests
  §  Test in the production clone                                                                 Unit Tests
                                                                                             Static Code Analysis




§  Automate deployment
  §  Always publish the latest tested build
  §  Everyone has the same state
  §  Could go directly in production (not recommended)


à Automate the entire setup using
08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann                 5
What is Jenkins CI?

§  Jenkins is a central build server
  §  Written in Java
  §  Runs as Servlet in Tomcat or standalone (e.g. Windows Service)


§  Performs „jobs“
  §  Configurable
  §  Does all the tedious work (checkout, build, test, package, deploy)


§  Adapts to your workflow
  §  More than 350 plugins available


§  Jenkins forked from Hudson (Oracle) in January 2011
  §  Most Hudson developers switched to Jenkins
  §  Oracle donated Hudson to the Eclipse Foundation in May 2011
08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   6
Repository Contains Everything Needed to
Build the Project

§  CI: Repository contains:
  §  Code, Resources
  §  NO build products
§  Jenkins supports many common SCM systems like SVN, CVS
  §  Automatic checkout/update on build
  §  Build on updates in the SCM




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   7
Building the Project Relies on External Build
Tools

§  Jenkins relies on external build
    tools
  §  Many common tools supported -
      like Ant, Maven, Ivy (plugins), …
  §  Allows to reuse the build scripts
      used locally

§  Jenkins builds the project…
  §  after another project has been
      builded
  §  according to a given schedule
  §  after code changes in the SCM
  §  many other (=> Plugins)



08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   8
Jenkins Allows to Perform Post-Build Actions

§  If build fails, Jenkins considers job as failed
§  Jenkins allows to perform a number of post-build actions:




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   9
Common Test-Frameworks are Supported by
Jenkins

§  Jenkins can use all test frameworks supported by the build tool
§  Has plugins to read and visualize the test results of various frameworks
  §  Junit, Checkstyle, Findbugs, Selenium, coverage tools,...




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   10
Multiple Test-Sets can be Executed using Jobs

§  Multiphase testing
  §  Small tests can be executed after each SCM commit giving fast feedback
  §  Time consuming tests can be executed on a nightly basis (e.g. Selenium FF)
  §  One job for each set of tests
§  CI: Tests should also happen in a production system clone
§  Tests fail: Jenkins considers project as unstable
  §  Otherwise: successfull
§  Keeps history of build status




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   11
Jenkins Supports Automatic Deployment

§  Jenkins offers (again) a lot of possibilities to deploy generated artifacts
  §  Upload to scm, ftp, folder, …
§  Ideally, the output of a build cycle is a fully running artifact
§  Can serve as a common basis for all developers




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   12
Sources

§  Continuous Integration
  §  http://martinfowler.com/articles/continuousIntegration.html
  §  http://www.se-radio.net/?s=133


§  Jenkins
  §  Homepage http://www.jenkins-ci.org
  §  Wiki http://wiki.jenkins-ci.org
  §  Plugin-List https://wiki.jenkins-ci.org/display/JENKINS/Plugins
  §  Github https://github.com/jenkinsci/jenkins
  §  Jenkins CI Server http://ci.jenkins-ci.org/
  §  Fork from Hudson http://jenkins-ci.org/content/hudsons-future




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   13
Get Notified about Failed Builds and Failed
Tests

  §  Via Email (Default) or...




                                                                   ...
http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc

08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann        14
Integration in Eclipse

§  „Mylyn Builds Connector: Hudson/Jenkins“ in the Mylyn repository
  §  Update-Site: http://download.eclipse.org/mylyn/releases/latest




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   15
Jenkins Supports Multi-Environment Builds

§  Multi-environment builds
  §  Easy to automatically build (and test) the project on many platforms using
      slaves
§  Multiplatform testing
  §  Jenkins slaves can execute the testsuite on different platforms




08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann   16

More Related Content

PPT
Jenkins Overview
PPTX
Jenkins Introduction
PPTX
Jenkins CI
PDF
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
PPTX
Jenkins presentation
PPTX
Jenkins tutorial
PPTX
PPTX
Jenkins CI presentation
Jenkins Overview
Jenkins Introduction
Jenkins CI
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
Jenkins presentation
Jenkins tutorial
Jenkins CI presentation

What's hot (20)

PDF
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
PPTX
Introduction to jenkins
PPTX
Jenkins tutorial for beginners
ODP
An Introduction To Jenkins
PPT
CI and CD with Jenkins
PDF
Jenkins tutorial
PDF
Jenkins Pipelines
PPTX
Getting started with Jenkins
PPTX
Introduction to DevOps
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PDF
Gitlab ci-cd
PPTX
Fundamentals of DevOps and CI/CD
PDF
Introduction to GitHub Actions
PPT
Maven Introduction
PDF
Jenkins 101: Getting Started
PDF
PPTX
Jenkins for java world
PPTX
Gitlab CI/CD
PDF
DevOps - A Gentle Introduction
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Introduction to jenkins
Jenkins tutorial for beginners
An Introduction To Jenkins
CI and CD with Jenkins
Jenkins tutorial
Jenkins Pipelines
Getting started with Jenkins
Introduction to DevOps
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Gitlab ci-cd
Fundamentals of DevOps and CI/CD
Introduction to GitHub Actions
Maven Introduction
Jenkins 101: Getting Started
Jenkins for java world
Gitlab CI/CD
DevOps - A Gentle Introduction
Ad

Viewers also liked (15)

PPTX
2016 Opportunity Process 111116
PPTX
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
PDF
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
PDF
Fundraising with Salesforce
PPTX
Cloud Computing And Salesforce
PPT
Groovy Maven Builds
PDF
Ant, Maven and Jenkins
PPTX
Basics of cloud computing & salesforce.com
PPTX
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
PPTX
Salesforce Intro
PDF
How Salesforce CRM works & who should use it?
PPTX
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
PPT
Salesforce Presentation
PPTX
Salesforce CRM
PPTX
Salesforce.com Overview
2016 Opportunity Process 111116
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Fundraising with Salesforce
Cloud Computing And Salesforce
Groovy Maven Builds
Ant, Maven and Jenkins
Basics of cloud computing & salesforce.com
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Salesforce Intro
How Salesforce CRM works & who should use it?
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
Salesforce Presentation
Salesforce CRM
Salesforce.com Overview
Ad

Similar to Jenkins (20)

PPTX
Continuous integration using jenkins
PPT
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
PDF
Jenkins_1679702972.pdf
PDF
jenkins.pdf
PPT
Continuous Integration (Jenkins/Hudson)
PPTX
Jenkins an opensource CICD platform for all
PDF
Continuous Integration
PPT
Technology standard ci_platforms
PPT
Technology standard ci_platforms
PPT
Presentation 1 open source tools in continuous integration environment v1.0
PDF
Continuous integration with jenkins
PPTX
Grails hudson ixxus_template
PPT
Introduction to continuous integration
PDF
Agile Bodensee - Testautomation & Continuous Delivery Workshop
PPTX
OVerview of Jenkins - A WIP pPT that needs to be refined
PPT
Continuous Integration: A Case Study
PDF
Jenkins CI
PDF
Continuous integration (eng)
Continuous integration using jenkins
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins_1679702972.pdf
jenkins.pdf
Continuous Integration (Jenkins/Hudson)
Jenkins an opensource CICD platform for all
Continuous Integration
Technology standard ci_platforms
Technology standard ci_platforms
Presentation 1 open source tools in continuous integration environment v1.0
Continuous integration with jenkins
Grails hudson ixxus_template
Introduction to continuous integration
Agile Bodensee - Testautomation & Continuous Delivery Workshop
OVerview of Jenkins - A WIP pPT that needs to be refined
Continuous Integration: A Case Study
Jenkins CI
Continuous integration (eng)

More from Roger Xia (20)

PPTX
机器学习推动金融数据智能
PPTX
Code reviews
PPTX
Python introduction
PPT
Learning notes ruby
PDF
Converged open platform for enterprise
PPTX
Code reviews
PDF
E commerce search strategies
PDF
Saml
PDF
JavaEE6
PDF
Indefero source code_managment
PDF
Web Services Atomic Transactio
DOCX
Web service through cxf
PDF
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
PDF
Spring one2gx2010 spring-nonrelational_data
PDF
Consistency-New-Generation-Databases
PDF
Java explore
PDF
Mongo db实战
PDF
Ca siteminder
PDF
Fixing twitter
DOCX
Eclipse plug in mylyn & tasktop
机器学习推动金融数据智能
Code reviews
Python introduction
Learning notes ruby
Converged open platform for enterprise
Code reviews
E commerce search strategies
Saml
JavaEE6
Indefero source code_managment
Web Services Atomic Transactio
Web service through cxf
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Spring one2gx2010 spring-nonrelational_data
Consistency-New-Generation-Databases
Java explore
Mongo db实战
Ca siteminder
Fixing twitter
Eclipse plug in mylyn & tasktop

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
A Presentation on Artificial Intelligence
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Modernizing your data center with Dell and AMD
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Cloud computing and distributed systems.
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Weekly Chronicles - August'25 Week I
Unlocking AI with Model Context Protocol (MCP)
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
A Presentation on Artificial Intelligence
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Modernizing your data center with Dell and AMD
Spectral efficient network and resource selection model in 5G networks
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
Cloud computing and distributed systems.
Network Security Unit 5.pdf for BCA BBA.
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...

Jenkins

  • 1. Continuous Integration with Jenkins CI Jan Riemann und Niklas Lochschmidt
  • 2. Late Integration is… not good Can Lead to “Big Bang Integration” External Project Master Integration Deliverable 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 2
  • 3. Continuous Integration External Project Master §  A software development practice §  Integrate your work in the project as often as possible §  At least once a day Deliverable §  Integration goes alongside the development à continuous §  Integration is no longer a dreadful (often postponed) event Integration §  Only possible through automated builds, tests and deployment §  Leads to better quality and early deliverables 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 3
  • 4. CI Best Practices §  Maintain a single source repository §  One team has one repository holding the mainline (trunk) §  Checkout must include everything needed for the build §  Automate the build §  Use a script or a build tool (e.g. Maven) §  Manage dependencies §  Make the build fast §  Show all warnings and errors §  Fail early 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 4
  • 5. CI Best Practices §  Make your build self-testing §  Run tests as part of the build process §  Provide rapid feedback Integration §  define a test pipeline with distinct test phases Tests §  Test in the production clone Unit Tests Static Code Analysis §  Automate deployment §  Always publish the latest tested build §  Everyone has the same state §  Could go directly in production (not recommended) à Automate the entire setup using 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 5
  • 6. What is Jenkins CI? §  Jenkins is a central build server §  Written in Java §  Runs as Servlet in Tomcat or standalone (e.g. Windows Service) §  Performs „jobs“ §  Configurable §  Does all the tedious work (checkout, build, test, package, deploy) §  Adapts to your workflow §  More than 350 plugins available §  Jenkins forked from Hudson (Oracle) in January 2011 §  Most Hudson developers switched to Jenkins §  Oracle donated Hudson to the Eclipse Foundation in May 2011 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 6
  • 7. Repository Contains Everything Needed to Build the Project §  CI: Repository contains: §  Code, Resources §  NO build products §  Jenkins supports many common SCM systems like SVN, CVS §  Automatic checkout/update on build §  Build on updates in the SCM 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 7
  • 8. Building the Project Relies on External Build Tools §  Jenkins relies on external build tools §  Many common tools supported - like Ant, Maven, Ivy (plugins), … §  Allows to reuse the build scripts used locally §  Jenkins builds the project… §  after another project has been builded §  according to a given schedule §  after code changes in the SCM §  many other (=> Plugins) 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 8
  • 9. Jenkins Allows to Perform Post-Build Actions §  If build fails, Jenkins considers job as failed §  Jenkins allows to perform a number of post-build actions: 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 9
  • 10. Common Test-Frameworks are Supported by Jenkins §  Jenkins can use all test frameworks supported by the build tool §  Has plugins to read and visualize the test results of various frameworks §  Junit, Checkstyle, Findbugs, Selenium, coverage tools,... 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 10
  • 11. Multiple Test-Sets can be Executed using Jobs §  Multiphase testing §  Small tests can be executed after each SCM commit giving fast feedback §  Time consuming tests can be executed on a nightly basis (e.g. Selenium FF) §  One job for each set of tests §  CI: Tests should also happen in a production system clone §  Tests fail: Jenkins considers project as unstable §  Otherwise: successfull §  Keeps history of build status 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 11
  • 12. Jenkins Supports Automatic Deployment §  Jenkins offers (again) a lot of possibilities to deploy generated artifacts §  Upload to scm, ftp, folder, … §  Ideally, the output of a build cycle is a fully running artifact §  Can serve as a common basis for all developers 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 12
  • 13. Sources §  Continuous Integration §  http://martinfowler.com/articles/continuousIntegration.html §  http://www.se-radio.net/?s=133 §  Jenkins §  Homepage http://www.jenkins-ci.org §  Wiki http://wiki.jenkins-ci.org §  Plugin-List https://wiki.jenkins-ci.org/display/JENKINS/Plugins §  Github https://github.com/jenkinsci/jenkins §  Jenkins CI Server http://ci.jenkins-ci.org/ §  Fork from Hudson http://jenkins-ci.org/content/hudsons-future 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 13
  • 14. Get Notified about Failed Builds and Failed Tests §  Via Email (Default) or... ... http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 14
  • 15. Integration in Eclipse §  „Mylyn Builds Connector: Hudson/Jenkins“ in the Mylyn repository §  Update-Site: http://download.eclipse.org/mylyn/releases/latest 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 15
  • 16. Jenkins Supports Multi-Environment Builds §  Multi-environment builds §  Easy to automatically build (and test) the project on many platforms using slaves §  Multiplatform testing §  Jenkins slaves can execute the testsuite on different platforms 08. Juni 2011 | Component Technology for Distributed Applications | Niklas Lochschmidt, Jan Riemann 16