The document discusses continuous integration, describing it as a blueprint and toolbox to prevent integration issues. It defines the problems that can occur when multiple developers work on a codebase simultaneously without continuous integration. It then presents the concept of a CI server that automatically rebuilds the codebase and runs tests on every commit. Finally, it discusses tools for implementing continuous integration like Jenkins, Cruise Control, and TeamCity and techniques for mastering continuous integration like unit testing, code coverage, code quality analysis, reporting, and packaging/deployment.
1. Continuous Integration:
Blueprint, Toolbox, Master Craft
Stephen D. Ritchie
#DCAEC12 @RuthlessHelp
Dec 7, 2012
Stephen D. Ritchie – Managing Consultant – Excella Consulting, Inc., 2300 Wilson Blvd, Suite 630, Arlington, VA 22201 – 703.840.8600 – http://excella.com
2. Live Tweet, Slides and Examples
• Twitter: @RuthlessHelp
#DCAEC12
• Slides:
http://www.slideshare.net/ruthlesshelp
• Code Samples:
http://github.com/ruthlesshelp
Stephen D. Ritchie #DCAEC12 2
3. The Problem
1 Scott makes changes
2 Susan makes changes
3 You can’t build
Source
Code
1 3 2
Scott’s Susan’s
You
Computer Computer
Stephen D. Ritchie #DCAEC12 3
4. What Went Wrong?
Conflicts
Missing Files
Breaking Changes
Stephen D. Ritchie #DCAEC12 4
5. How do you
find
integration
issues?
Stephen D. Ritchie #DCAEC12 5
6. Manual Integration
Build
Run Some Unit Tests
Perform Static Analysis
Clean + Rebuild All
Stephen D. Ritchie #DCAEC12 6
10. CI – Per Commit Steps
1. Clean + Rebuild All
2. Run All Unit Tests
3. Analysis
Static Code Analysis
Coding Standards
Stephen D. Ritchie #DCAEC12 10