Beruflich Dokumente
Kultur Dokumente
Overview
General Definitions Problem Statement Solution Proposal Continuous Integration Description Why Continuous Integration? Martin Fowlers 10 CI Practices Example Scenario Conclusion
or form a whole.
In software integration, we: Combine separately produced components/subsystems Address problems in their interactions Ensure that the components/ subsystems function together as a system
least daily), hence multiple integrations per day Controlled source code repository
Dont commit broken code Fix broken code immediately Avoid getting broken code
Integration verification by an automated build Write automated developer tests All tests and inspections must pass Run private builds No particular tooling required to deploy
Fowlers CI Practices
1. Maintain a single source repository 2. Automate the build 3. Make your build self-testing 4. Everyone commits to the mainline every day 5. Every commit should build the mainline on an
integration machine 6. Keep the build fast 7. Test in a clone of the production environment 8. Make it easy for anyone to get the latest executable 9. Everyone can see whats happening 10. Automate deployment
5. 6.
7.
Tim sees that the last integration build is successful (a few mins ago) He was said to fix the too much duplicate code (based on reports) He refactors code He runs a private build (it compiles and runs unit tests against the newest source code) After the build is successful, he commits his changes In a few minutes, the CI server discover the changes and runs an integration build (inspection tools are used) The CI server tells that the operation was successful
Conclusion
Continuous Integration has many benefits for a project
team Its not a must; but a better-win Various CI server exist (some of them are open-source projects) and their usage is offered
Examples: CruiseControl, Go, Hudson, Apache Continuum