SlideShare une entreprise Scribd logo
1  sur  15
Continuous
Integration
-Radhakrishna M
Contents
 Definition
 Workflow
 Popular tools for CI
 Requirements
 Principles
 Functionalities
 Jenkins configuration
 Advantages
 Disadvantages
Continuous Integration
“Continuous Integration is a software development
practice where members of a team integrate their work
frequently. Each integration is verified by an automated
build (including test) to detect integration errors as
quickly as possible”- Martin Flower.
CI-Workflow
Workflow contains following steps:
• Integrated
All changes up until some point are combined into the project.
• Built
The code is compiled into a executable or package
• Tested
Automated test suites are run
• Archived
Versioned and stored
• Deployed
Loaded onto the system[server] where developers can interact with it.
Popular tools for CI
 Hudson/Jenkins
 TravisCI
 TeamCity
 BuildBot
 Bamboo
History of Jenkins
• Jenkins is an open source continuous integration tool
written in java.
• The primary developer of Hudson/Jenkins is Kohsuke
Kawaguchi.
• Jenkins is forked from Hudson after a dispute with
Oracle.
• Jenkins organization on GitHub had 567 project
members and around 1,100 public repositories.
• Kohsuke Kawaguchi received a Google-O'Reilly Open
Source Award for his work on Jenkins project
Requirements
• Code repositories
- SVN, Mercurial, Git
• Continuous Build systems
- Jenkins, Bamboo, Cruise control
• Test frameworks
- Junit, Cucumber, CppUnit
• Artifact Repositories
- Nexus, Artifactory, Archiva
Principles
The following are the principles which needs to be
follow
• Maintain a code repository
• Automate the build
• Make the build self-testing
• Everyone commits to the baseline every day
• Every commit should be built
• Keep the build fast
• Test in a clone of the production environment
• Automatic deployment
Major functionalities
• Integrate with many different version control systems
• Generate test reports
• Push to various artifact repositories
• Deploys directly to production or test environments.
• Publish Junit test results and javadocs
• Email notifications
Jenkins configuration
We can install Jenkins in following ways:
 Installing Jenkins on Ubuntu
Jenkins provides Debian/Ubuntu packages which
install Jenkins and register Jenkins as start
service[/etc/init.d/jenkins]
 Using the .war file of Jenkins
start Jenkins directly via the command line with
java -jar jenkins*.war.
Then jenkins running under the following URL:
http://localhost:8080/jenkins
Advantages
• We can easily configure from the browser
• When unit tests fail or a bug emerges, developers
might revert the codebase to a bug-free state,
without wasting time.
• Developers detect and fix integration problems
continuously
• Early warning of broken/incompatible code
• Immediate unit testing of all changes
• Constant availability of a "current" build for testing,
demo or release purposes.
• Immediate feedback to developers on the quality,
functionality, or system-wide impact of code they are
writing.
Disadvantages
• Initial setup requires lots of time.
• Well-developed test-suite required for automated
testing.
Useful links
• http://jenkins-ci.org/ [To download .war]
• http://www.blackbuild.com/15-must-have-plugins-
for-jenkins/ [Plugins]
• http://thefutureofdeployment.com/set-database-
continuous-integration-automated-deployment-
jenkins-lunch/ [To run database scripts]

Contenu connexe

Tendances

Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsBrice Argenson
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkinscherryhillco
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
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
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To JenkinsKnoldus Inc.
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationamscanne
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and TellE. Camden Fisher
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topicGourav Varma
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkMichael Peacock
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 

Tendances (20)

JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
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
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins Team
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
CICD by Teerapat
CICD by TeerapatCICD by Teerapat
CICD by Teerapat
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 

En vedette

Testing Types Presentation
Testing Types PresentationTesting Types Presentation
Testing Types Presentationnazeer pasha
 
Teaching Testing Qw%202001
Teaching Testing Qw%202001Teaching Testing Qw%202001
Teaching Testing Qw%202001nazeer pasha
 
Tomcat Configuration (1)
Tomcat Configuration (1)Tomcat Configuration (1)
Tomcat Configuration (1)nazeer pasha
 

En vedette (6)

Good Ppt On Risk
Good Ppt On RiskGood Ppt On Risk
Good Ppt On Risk
 
Testing Types Presentation
Testing Types PresentationTesting Types Presentation
Testing Types Presentation
 
Linux
LinuxLinux
Linux
 
Teaching Testing Qw%202001
Teaching Testing Qw%202001Teaching Testing Qw%202001
Teaching Testing Qw%202001
 
Test Techniques
Test TechniquesTest Techniques
Test Techniques
 
Tomcat Configuration (1)
Tomcat Configuration (1)Tomcat Configuration (1)
Tomcat Configuration (1)
 

Similaire à Contineous integration

Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdfMahmoudAlnmr1
 
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
 
Hudson
HudsonHudson
Hudson8x8
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developerAbe Diaz
 
Why NXTware Remote for Jenkins
Why NXTware Remote for JenkinsWhy NXTware Remote for Jenkins
Why NXTware Remote for Jenkinsecubemarketing
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptxAnuj Sharma
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup PuneUmesh Kumhar
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
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 applicationsSunil Dalal
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
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!
 
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 GuideSam Dias
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Jenkins.pptx
Jenkins.pptxJenkins.pptx
Jenkins.pptxrfojdar
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkinsVinay H G
 
Continuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsContinuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsTricode (part of Dept)
 

Similaire à Contineous integration (20)

Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
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
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Hudson
HudsonHudson
Hudson
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developer
 
Why NXTware Remote for Jenkins
Why NXTware Remote for JenkinsWhy NXTware Remote for Jenkins
Why NXTware Remote for Jenkins
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
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
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
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
 
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
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Jenkins.pptx
Jenkins.pptxJenkins.pptx
Jenkins.pptx
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Continuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projectsContinuous Delivery for Open Source Java projects
Continuous Delivery for Open Source Java projects
 

Contineous integration

  • 2. Contents  Definition  Workflow  Popular tools for CI  Requirements  Principles  Functionalities  Jenkins configuration  Advantages  Disadvantages
  • 3. Continuous Integration “Continuous Integration is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible”- Martin Flower.
  • 5. Workflow contains following steps: • Integrated All changes up until some point are combined into the project. • Built The code is compiled into a executable or package • Tested Automated test suites are run • Archived Versioned and stored • Deployed Loaded onto the system[server] where developers can interact with it.
  • 6. Popular tools for CI  Hudson/Jenkins  TravisCI  TeamCity  BuildBot  Bamboo
  • 7. History of Jenkins • Jenkins is an open source continuous integration tool written in java. • The primary developer of Hudson/Jenkins is Kohsuke Kawaguchi. • Jenkins is forked from Hudson after a dispute with Oracle. • Jenkins organization on GitHub had 567 project members and around 1,100 public repositories. • Kohsuke Kawaguchi received a Google-O'Reilly Open Source Award for his work on Jenkins project
  • 8. Requirements • Code repositories - SVN, Mercurial, Git • Continuous Build systems - Jenkins, Bamboo, Cruise control • Test frameworks - Junit, Cucumber, CppUnit • Artifact Repositories - Nexus, Artifactory, Archiva
  • 9. Principles The following are the principles which needs to be follow • Maintain a code repository • Automate the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit should be built • Keep the build fast • Test in a clone of the production environment • Automatic deployment
  • 10. Major functionalities • Integrate with many different version control systems • Generate test reports • Push to various artifact repositories • Deploys directly to production or test environments. • Publish Junit test results and javadocs • Email notifications
  • 11. Jenkins configuration We can install Jenkins in following ways:  Installing Jenkins on Ubuntu Jenkins provides Debian/Ubuntu packages which install Jenkins and register Jenkins as start service[/etc/init.d/jenkins]  Using the .war file of Jenkins start Jenkins directly via the command line with java -jar jenkins*.war. Then jenkins running under the following URL: http://localhost:8080/jenkins
  • 12. Advantages • We can easily configure from the browser • When unit tests fail or a bug emerges, developers might revert the codebase to a bug-free state, without wasting time. • Developers detect and fix integration problems continuously • Early warning of broken/incompatible code • Immediate unit testing of all changes
  • 13. • Constant availability of a "current" build for testing, demo or release purposes. • Immediate feedback to developers on the quality, functionality, or system-wide impact of code they are writing.
  • 14. Disadvantages • Initial setup requires lots of time. • Well-developed test-suite required for automated testing.
  • 15. Useful links • http://jenkins-ci.org/ [To download .war] • http://www.blackbuild.com/15-must-have-plugins- for-jenkins/ [Plugins] • http://thefutureofdeployment.com/set-database- continuous-integration-automated-deployment- jenkins-lunch/ [To run database scripts]