Continuous Integration
Upcoming SlideShare
Loading in...5
×
 

Continuous Integration

on

  • 926 views

 

Statistics

Views

Total Views
926
Views on SlideShare
926
Embed Views
0

Actions

Likes
2
Downloads
23
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

Continuous Integration Continuous Integration Presentation Transcript

  • Continuous Integration (CI)
  • Motivation
    • Integrate modules
    • at late state of project
    Traditionally, different modules are developed by different teams/developers
    • The earlier you can detect problems, the easier it is to resolve them
    In Agile processes, any programmer can change any part of the code
  • Definition
    • Continuous Integration is a software development practice where members of a team integrate their work frequently
    • Each integration is verified by an automated build
    • Detect integration errors as quickly as possible
    • Assumes a high degree of tests
    Continuous Integration
  • Demonstration
  • Continuous Integration Server Source Repository Developers Solution: continually integrate and test throughout the project
  • Developers check out code into their private workspaces
  • Developers work on functionality and validate it by running unit tests and local build
  • Developer update code to avoid conflicts
  • Developers work on functionality and validate it by running unit tests and local build
  • When done, they commit changes to the repository
  • The CI server monitors the repository and checks out changes when they occur
  • The CI server builds the system and runs unit and integration tests
  • The CI server releases deployable artefacts for QA testing
  • The CI server assigns a build label to the version of the code that it just built
  • The CI server informs the team of the successful build and generates useful metrics
  • If the build or tests fail, the CI server alerts the team
  • The team fix the issue at the earliest opportunity
  • Continually integrate and test throughout the project
  • Metrics
  • Metrics generated by the CI server can be a useful indication of project “health”
  • Metrics generated by the CI server can be a useful indication of project “health” (cont.)
  • Reminder
      • Check in frequently
    Continuous Integration Reminder
      • Don’t check in broken code
    Continuous Integration Reminder
      • Don’t check in untested code
    Continuous Integration Reminder
      • Don’t check in
      • when the build is broken
    Continuous Integration Reminder
      • Don’t go home after checking in until the system builds
    Continuous Integration Reminder
  • “ Oops, I did it again….”
    • Peer pressure within team ensures policies are followed
  • Practices of Continuous Integration
    • Maintain a Single Source Repository
    Practices of Continuous Integration
    • Automate the Build
    Practices of Continuous Integration
    • Make Your Build Self-Testable
    Practices of Continuous Integration
    • Every Commit Should Build the Mainline on an Integration Machine
    Practices of Continuous Integration
    • Keep the Build Fast
    Practices of Continuous Integration
    • Test in a Clone of the Production Environment
    Practices of Continuous Integration
    • Everyone can see what's happening
    Practices of Continuous Integration
    • Automate Deployment
    Practices of Continuous Integration
  • Conclusion
    • Detect integration errors as quickly as possible
    Continuous Integration
    • Assumes a high degree of tests
    Continuous Integration
    • Always have a deployable build
    Continuous Integration
    • Generate metrics to guide project management
    Continuous Integration
    • Continuous Integration is Vital for Agile Development
    Continuous Integration
  • ? Q & A