SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins IntroductionPavan Gupta
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Edureka!
 
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!
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java worldAshok Kumar
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsKumar Shìvam
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with JenkinsJadson Santos
 

Mais procurados (20)

Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
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
 
Jenkins
JenkinsJenkins
Jenkins
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
DevOps: Age Of CI/CD
DevOps: Age Of CI/CDDevOps: Age Of CI/CD
DevOps: Age Of CI/CD
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
CI/CD
CI/CDCI/CD
CI/CD
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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