Contineous integration witg
Upcoming SlideShare
Loading in...5
×
 

Contineous integration witg

on

  • 371 views

 

Statistics

Views

Total Views
371
Views on SlideShare
371
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Contineous integration witg Contineous integration witg Presentation Transcript

  • 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]