SlideShare una empresa de Scribd logo
1 de 18
CONTINUOUS INTEGRATION USING JENKINS
- Vinay Gopalkrishna
AGENDA
 Continuous Integration
 What is CI?
 Why we need CI?
 Best Practices
 Workflow
 Build Ingredients
 CI Server – Jenkins
 What is Jenkins?
 How Jenkins work?
 Plugins
 What Jenkins can do?
 Conclusion
 References
CI - DEFINED
 Continuous Integration is the practice, in software
engineering, of merging all developer working
copies with a shared mainline several times a day.
 CI is a software development practice where
members of a team integrate their work frequently,
usually each person integrates at least daily –
leading to multiple integrations per day. Each
integration is verified by an automated build
(including test) to detect integration errors as
quickly as possible. – Martin Flower
CI – WHAT DOES IT REALLY MEAN?
 At a regular frequency (ideally at every commit), the
system is :
 Integrated
 All changes up until that point are combined into the project
 Built
 The code is compiled into an executable or package
 Tested
 Automated Test suites are run
 Archived
 Versioned and stored so it can be distributed as is, if desired
 Deployed
 Loaded onto a system where the developers can interact with
it.
WHY WE NEED CI?
 Fixing bugs late is costly
 Lack of team cohesion
 “Your changes to bar are incompatible with mine. How
do we merge now?”
 “When did we decided to upgrade to version 2.0 of the
super library?”
 “I thought you fixed that 2 months ago!”
 Poor quality code base
 “We have 3 classes doing the same thing!!”
 “Everybody knows double checked locking is bad idea!”
 “Why can’t I just include Foo and not require all of the
other 13 libs? ”
WHY WE NEED CI? CONT…..
 Lack of project visibility
 “What do you mean the tests are failing? ”
 “What’s in the version 1.2.3 of the build”
 What’s our code coverage now?
 Lack of deployable software
 “It works on my machine!”
 “I need a new build to test with”
 “The boss|customer is coming, we need to demo
progress asap.”
BEST PRACTICES
 Maintain Code Repository
 Automate the build
 Everyone commits the baseline everyday
 Every commit (to baseline) should be built
 Keep the build fast
 Test in the clone of production environment
 Make it easy to get the test deliverables
 Everyone can see the results of the latest build
 Automate deployment
CI WORKFLOW
CI WORKFLOW
BUILD INGREDIENTS
 Compilation
 Ensures code actually compiles
 On every target platform
 Test execution
 Ensures product functions as expected
 Through repeatable testing
 Database integration
 Ensures DB and code is in sync
 Automates (re)creation of test data
BUILD INGREDIENTS SOME MORE
 Code inspection
 Ensures a healthy code base
 Identifies problems early
 Enforces best practices
 Automated deployment
 Products can be released anytime
 Continually demo-able state
 Eliminates “Works on my machine”
 Documentation generation
 Ensures document is current
 Removes burden from developers
 Produces build reports and metrics
CI SERVER - JENKINS
 It is an open source CI tool written in java.
 It is a server based system running in a servlet
container.
 It supports SCM tools including Accurev, CVS,
Subversion, Git, Mercurial, Perforce, Clearcase.
 It can execute Apache Ant and Apache maven
based projects.
 Builds can be started by various means, including
being triggered by commit in version control
system.
HOW JENKINS WORK - SETUP
 When setting up a project in Jenkins, out of the box
you have the general options
 Associating with a version control server
 Triggering builds
 Execution of shell scripts, bash scripts, Ant targets and
maven targets.
 Artifact archival
 Publish jUnit test results and javadocs
 Email Notifications
PLUGINS
 Jenkins plugin system can enable a wide range of
features including(but not certainly not limited to)
 SCM
 Testing
 Notifications
 Reporting
 Artifact saving
 Triggers
 External integration
 And most importantly – The CI game
 A points based game where developers compete against each
other to develop the most stable, well tested code
WHAT JENKINS CAN DO?
 Generate Test Reports
 Integrate with many different version control
systems
 Push to various artifact repositories
 Deploys directly to production or test environments
 Notify stakeholders of build status
CONCLUSION
 Continuous Integration is a necessity on complex
projects due to the benefits it provides regarding
early detection of problems.
 A good continuous build system should be flexible
enough to fit into pre-existing development
environments and provide all the features a team
expects from such a system.
 Jenkins, a continuous build system, can be an
integral part of any continuous integration system
due to its core feature set and extensibility through
a plugin system.
REFERENCES
 Continuous integration
 http://en.wikipedia.org/wiki/Continuous_integration
 http://java.dzone.com/articles/continuous-integration-
how-0
 Jenkins
 http://en.wikipedia.org/wiki/Jenkins_(software)
ANY QUESTIONS?

Más contenido relacionado

La actualidad más candente

Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
cherryhillco
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
Rodrigo Russo
 

La actualidad más candente (20)

Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
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...
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkins
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Building the Test Automation Framework - Jenkins for Testers
Building the Test Automation Framework - Jenkins for TestersBuilding the Test Automation Framework - Jenkins for Testers
Building the Test Automation Framework - Jenkins for Testers
 

Destacado

One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
Mayflower GmbH
 
Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013
Puppet
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 

Destacado (11)

Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
 
How I learned to stop worrying and love the bugs with Jenkins & Continuous In...
How I learned to stop worrying and love the bugs with Jenkins & Continuous In...How I learned to stop worrying and love the bugs with Jenkins & Continuous In...
How I learned to stop worrying and love the bugs with Jenkins & Continuous In...
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
 
Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development Cycle
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
 
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GITCONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
 
Testing Salesforce at Cloud Scale
Testing Salesforce at Cloud ScaleTesting Salesforce at Cloud Scale
Testing Salesforce at Cloud Scale
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 

Similar a Continuous integration using jenkins

Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
JenkinsCIdocumentations-removedcredentials.docx
JenkinsCIdocumentations-removedcredentials.docxJenkinsCIdocumentations-removedcredentials.docx
JenkinsCIdocumentations-removedcredentials.docx
Md. Abdul Hasib (Sazzad)
 

Similar a Continuous integration using jenkins (20)

Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Continuous integration
Continuous integration Continuous integration
Continuous integration
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Learn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One GuideLearn Continuous Integration with Jenkins All in One Guide
Learn Continuous Integration with Jenkins All in One Guide
 
GCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptxGCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptx
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Jenkins workflows and Best Practices
Jenkins workflows and Best PracticesJenkins workflows and Best Practices
Jenkins workflows and Best Practices
 
JenkinsCIdocumentations-removedcredentials.docx
JenkinsCIdocumentations-removedcredentials.docxJenkinsCIdocumentations-removedcredentials.docx
JenkinsCIdocumentations-removedcredentials.docx
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
How to win at DevOps (and understand it along the way)
How to win at DevOps (and understand it along the way)How to win at DevOps (and understand it along the way)
How to win at DevOps (and understand it along the way)
 
Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing   Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing
 

Más de Vinay H G (12)

Developers best practices_tutorial
Developers best practices_tutorialDevelopers best practices_tutorial
Developers best practices_tutorial
 
Javamagazine20140304 dl
Javamagazine20140304 dlJavamagazine20140304 dl
Javamagazine20140304 dl
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorial
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Why should i switch to Java SE 7
Why should i switch to Java SE 7Why should i switch to Java SE 7
Why should i switch to Java SE 7
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
 
Tutorial storybook
Tutorial storybookTutorial storybook
Tutorial storybook
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
 
Agile practice-2012
Agile practice-2012Agile practice-2012
Agile practice-2012
 
OAuth with Restful Web Services
OAuth with Restful Web Services OAuth with Restful Web Services
OAuth with Restful Web Services
 
Java Garbage Collection
Java Garbage CollectionJava Garbage Collection
Java Garbage Collection
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

Continuous integration using jenkins

  • 1. CONTINUOUS INTEGRATION USING JENKINS - Vinay Gopalkrishna
  • 2. AGENDA  Continuous Integration  What is CI?  Why we need CI?  Best Practices  Workflow  Build Ingredients  CI Server – Jenkins  What is Jenkins?  How Jenkins work?  Plugins  What Jenkins can do?  Conclusion  References
  • 3. CI - DEFINED  Continuous Integration is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day.  CI is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. – Martin Flower
  • 4. CI – WHAT DOES IT REALLY MEAN?  At a regular frequency (ideally at every commit), the system is :  Integrated  All changes up until that point are combined into the project  Built  The code is compiled into an executable or package  Tested  Automated Test suites are run  Archived  Versioned and stored so it can be distributed as is, if desired  Deployed  Loaded onto a system where the developers can interact with it.
  • 5. WHY WE NEED CI?  Fixing bugs late is costly  Lack of team cohesion  “Your changes to bar are incompatible with mine. How do we merge now?”  “When did we decided to upgrade to version 2.0 of the super library?”  “I thought you fixed that 2 months ago!”  Poor quality code base  “We have 3 classes doing the same thing!!”  “Everybody knows double checked locking is bad idea!”  “Why can’t I just include Foo and not require all of the other 13 libs? ”
  • 6. WHY WE NEED CI? CONT…..  Lack of project visibility  “What do you mean the tests are failing? ”  “What’s in the version 1.2.3 of the build”  What’s our code coverage now?  Lack of deployable software  “It works on my machine!”  “I need a new build to test with”  “The boss|customer is coming, we need to demo progress asap.”
  • 7. BEST PRACTICES  Maintain Code Repository  Automate the build  Everyone commits the baseline everyday  Every commit (to baseline) should be built  Keep the build fast  Test in the clone of production environment  Make it easy to get the test deliverables  Everyone can see the results of the latest build  Automate deployment
  • 10. BUILD INGREDIENTS  Compilation  Ensures code actually compiles  On every target platform  Test execution  Ensures product functions as expected  Through repeatable testing  Database integration  Ensures DB and code is in sync  Automates (re)creation of test data
  • 11. BUILD INGREDIENTS SOME MORE  Code inspection  Ensures a healthy code base  Identifies problems early  Enforces best practices  Automated deployment  Products can be released anytime  Continually demo-able state  Eliminates “Works on my machine”  Documentation generation  Ensures document is current  Removes burden from developers  Produces build reports and metrics
  • 12. CI SERVER - JENKINS  It is an open source CI tool written in java.  It is a server based system running in a servlet container.  It supports SCM tools including Accurev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase.  It can execute Apache Ant and Apache maven based projects.  Builds can be started by various means, including being triggered by commit in version control system.
  • 13. HOW JENKINS WORK - SETUP  When setting up a project in Jenkins, out of the box you have the general options  Associating with a version control server  Triggering builds  Execution of shell scripts, bash scripts, Ant targets and maven targets.  Artifact archival  Publish jUnit test results and javadocs  Email Notifications
  • 14. PLUGINS  Jenkins plugin system can enable a wide range of features including(but not certainly not limited to)  SCM  Testing  Notifications  Reporting  Artifact saving  Triggers  External integration  And most importantly – The CI game  A points based game where developers compete against each other to develop the most stable, well tested code
  • 15. WHAT JENKINS CAN DO?  Generate Test Reports  Integrate with many different version control systems  Push to various artifact repositories  Deploys directly to production or test environments  Notify stakeholders of build status
  • 16. CONCLUSION  Continuous Integration is a necessity on complex projects due to the benefits it provides regarding early detection of problems.  A good continuous build system should be flexible enough to fit into pre-existing development environments and provide all the features a team expects from such a system.  Jenkins, a continuous build system, can be an integral part of any continuous integration system due to its core feature set and extensibility through a plugin system.
  • 17. REFERENCES  Continuous integration  http://en.wikipedia.org/wiki/Continuous_integration  http://java.dzone.com/articles/continuous-integration- how-0  Jenkins  http://en.wikipedia.org/wiki/Jenkins_(software)