SlideShare a Scribd company logo
1 of 16
Download to read offline
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

What's hot

CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...Edureka!
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To JenkinsKnoldus Inc.
 
Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginnersBugRaptors
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsKnoldus Inc.
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with JenkinsEdureka!
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaEdureka!
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CDCprime
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps JourneyDevOps.com
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 

What's hot (20)

CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginners
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 

Viewers also liked

2016 Opportunity Process 111116
2016 Opportunity Process 1111162016 Opportunity Process 111116
2016 Opportunity Process 111116Randi Thompson
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsLuca Milanesio
 
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...Andrey Devyatkin
 
Fundraising with Salesforce
Fundraising with SalesforceFundraising with Salesforce
Fundraising with SalesforcePurple Vision
 
Cloud Computing And Salesforce
Cloud Computing And SalesforceCloud Computing And Salesforce
Cloud Computing And SalesforceAbhishek Chikane
 
Basics of cloud computing & salesforce.com
Basics of cloud computing & salesforce.comBasics of cloud computing & salesforce.com
Basics of cloud computing & salesforce.comDeepu S Nath
 
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Edureka!
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce IntroRich Helton
 
How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?Suyati Technologies
 
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...Edureka!
 
Salesforce Presentation
Salesforce PresentationSalesforce Presentation
Salesforce PresentationChetna Purohit
 
Salesforce.com Overview
Salesforce.com OverviewSalesforce.com Overview
Salesforce.com OverviewEdureka!
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins AutomationJulien Pivotto
 

Viewers also liked (16)

2016 Opportunity Process 111116
2016 Opportunity Process 1111162016 Opportunity Process 111116
2016 Opportunity Process 111116
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
Synchronizing parallel delivery flows in jenkins using groovy, build flow and...
 
Fundraising with Salesforce
Fundraising with SalesforceFundraising with Salesforce
Fundraising with Salesforce
 
Cloud Computing And Salesforce
Cloud Computing And SalesforceCloud Computing And Salesforce
Cloud Computing And Salesforce
 
Groovy Maven Builds
Groovy Maven BuildsGroovy Maven Builds
Groovy Maven Builds
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
 
Basics of cloud computing & salesforce.com
Basics of cloud computing & salesforce.comBasics of cloud computing & salesforce.com
Basics of cloud computing & salesforce.com
 
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?How Salesforce CRM works & who should use it?
How Salesforce CRM works & who should use it?
 
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
 
Salesforce Presentation
Salesforce PresentationSalesforce Presentation
Salesforce Presentation
 
Salesforce CRM
Salesforce CRMSalesforce CRM
Salesforce CRM
 
Salesforce.com Overview
Salesforce.com OverviewSalesforce.com Overview
Salesforce.com Overview
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins Automation
 

Similar to Jenkins

Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsJames Strong
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonVladLica
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsNigel Charman
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryVirendra Bhalothia
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...CloudBees
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins CloudBees
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup PuneUmesh Kumhar
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...Gil Hoffer
 
Devops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - MobiniusDevops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - Mobiniusmobiniusdigitals
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdfMahmoudAlnmr1
 
Introduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleIntroduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleSpringPeople
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptxAnuj Sharma
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...Cisco DevNet
 

Similar to Jenkins (20)

Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
Contineous integration
Contineous integrationContineous integration
Contineous integration
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...
Supercharge your Test & Dev Process with Ravello, Jenkins and the Cloud (Jenk...
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Devops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - MobiniusDevops Companies in Bangalore - Mobinius
Devops Companies in Bangalore - Mobinius
 
JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
Introduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleIntroduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeople
 
Mobile CI
Mobile CIMobile CI
Mobile CI
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
 
Build tool
Build toolBuild tool
Build tool
 

More from Roger Xia

机器学习推动金融数据智能
机器学习推动金融数据智能机器学习推动金融数据智能
机器学习推动金融数据智能Roger Xia
 
Code reviews
Code reviewsCode reviews
Code reviewsRoger Xia
 
Python introduction
Python introductionPython introduction
Python introductionRoger Xia
 
Learning notes ruby
Learning notes rubyLearning notes ruby
Learning notes rubyRoger Xia
 
Converged open platform for enterprise
Converged open platform for enterpriseConverged open platform for enterprise
Converged open platform for enterpriseRoger Xia
 
Code reviews
Code reviewsCode reviews
Code reviewsRoger Xia
 
E commerce search strategies
E commerce search strategiesE commerce search strategies
E commerce search strategiesRoger Xia
 
Indefero source code_managment
Indefero source code_managmentIndefero source code_managment
Indefero source code_managmentRoger Xia
 
Web Services Atomic Transactio
 Web Services Atomic Transactio Web Services Atomic Transactio
Web Services Atomic TransactioRoger Xia
 
Web service through cxf
Web service through cxfWeb service through cxf
Web service through cxfRoger Xia
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukRoger Xia
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataRoger Xia
 
Consistency-New-Generation-Databases
Consistency-New-Generation-DatabasesConsistency-New-Generation-Databases
Consistency-New-Generation-DatabasesRoger Xia
 
Java explore
Java exploreJava explore
Java exploreRoger Xia
 
Mongo db实战
Mongo db实战Mongo db实战
Mongo db实战Roger Xia
 
Ca siteminder
Ca siteminderCa siteminder
Ca siteminderRoger Xia
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Eclipse plug in mylyn & tasktop
Eclipse plug in mylyn & tasktopEclipse plug in mylyn & tasktop
Eclipse plug in mylyn & tasktopRoger Xia
 

More from Roger Xia (20)

机器学习推动金融数据智能
机器学习推动金融数据智能机器学习推动金融数据智能
机器学习推动金融数据智能
 
Code reviews
Code reviewsCode reviews
Code reviews
 
Python introduction
Python introductionPython introduction
Python introduction
 
Learning notes ruby
Learning notes rubyLearning notes ruby
Learning notes ruby
 
Converged open platform for enterprise
Converged open platform for enterpriseConverged open platform for enterprise
Converged open platform for enterprise
 
Code reviews
Code reviewsCode reviews
Code reviews
 
E commerce search strategies
E commerce search strategiesE commerce search strategies
E commerce search strategies
 
Saml
SamlSaml
Saml
 
JavaEE6
JavaEE6JavaEE6
JavaEE6
 
Indefero source code_managment
Indefero source code_managmentIndefero source code_managment
Indefero source code_managment
 
Web Services Atomic Transactio
 Web Services Atomic Transactio Web Services Atomic Transactio
Web Services Atomic Transactio
 
Web service through cxf
Web service through cxfWeb service through cxf
Web service through cxf
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
Consistency-New-Generation-Databases
Consistency-New-Generation-DatabasesConsistency-New-Generation-Databases
Consistency-New-Generation-Databases
 
Java explore
Java exploreJava explore
Java explore
 
Mongo db实战
Mongo db实战Mongo db实战
Mongo db实战
 
Ca siteminder
Ca siteminderCa siteminder
Ca siteminder
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Eclipse plug in mylyn & tasktop
Eclipse plug in mylyn & tasktopEclipse plug in mylyn & tasktop
Eclipse plug in mylyn & tasktop
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

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