Your SlideShare is downloading. ×
Continuous Integration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Continuous Integration

829
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
829
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Continuous Integration (CI)
  • 2. Motivation
  • 3.
    • Integrate modules
    • at late state of project
    Traditionally, different modules are developed by different teams/developers
  • 4.
    • 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
  • 5. Definition
  • 6.
    • 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
  • 7. Demonstration
  • 8. Continuous Integration Server Source Repository Developers Solution: continually integrate and test throughout the project
  • 9. Developers check out code into their private workspaces
  • 10. Developers work on functionality and validate it by running unit tests and local build
  • 11. Developer update code to avoid conflicts
  • 12. Developers work on functionality and validate it by running unit tests and local build
  • 13. When done, they commit changes to the repository
  • 14. The CI server monitors the repository and checks out changes when they occur
  • 15. The CI server builds the system and runs unit and integration tests
  • 16. The CI server releases deployable artefacts for QA testing
  • 17. The CI server assigns a build label to the version of the code that it just built
  • 18. The CI server informs the team of the successful build and generates useful metrics
  • 19. If the build or tests fail, the CI server alerts the team
  • 20. The team fix the issue at the earliest opportunity
  • 21. Continually integrate and test throughout the project
  • 22. Metrics
  • 23. Metrics generated by the CI server can be a useful indication of project “health”
  • 24. Metrics generated by the CI server can be a useful indication of project “health” (cont.)
  • 25. Reminder
  • 26.
      • Check in frequently
    Continuous Integration Reminder
  • 27.
      • Don’t check in broken code
    Continuous Integration Reminder
  • 28.
      • Don’t check in untested code
    Continuous Integration Reminder
  • 29.
      • Don’t check in
      • when the build is broken
    Continuous Integration Reminder
  • 30.
      • Don’t go home after checking in until the system builds
    Continuous Integration Reminder
  • 31. “ Oops, I did it again….”
    • Peer pressure within team ensures policies are followed
  • 32. Practices of Continuous Integration
  • 33.
    • Maintain a Single Source Repository
    Practices of Continuous Integration
  • 34.
    • Automate the Build
    Practices of Continuous Integration
  • 35.
    • Make Your Build Self-Testable
    Practices of Continuous Integration
  • 36.
    • Every Commit Should Build the Mainline on an Integration Machine
    Practices of Continuous Integration
  • 37.
    • Keep the Build Fast
    Practices of Continuous Integration
  • 38.
    • Test in a Clone of the Production Environment
    Practices of Continuous Integration
  • 39.
    • Everyone can see what's happening
    Practices of Continuous Integration
  • 40.
    • Automate Deployment
    Practices of Continuous Integration
  • 41. Conclusion
  • 42.
    • Detect integration errors as quickly as possible
    Continuous Integration
  • 43.
    • Assumes a high degree of tests
    Continuous Integration
  • 44.
    • Always have a deployable build
    Continuous Integration
  • 45.
    • Generate metrics to guide project management
    Continuous Integration
  • 46.
    • Continuous Integration is Vital for Agile Development
    Continuous Integration
  • 47. ? Q & A