Continuous Integration
Continuous integration is the practice of merging all developer working copies to a shared mainline on a highly frequent basis. CI mitigates merge / integration hell by merging early and often. It greatly depends on robust, automated unit tests that are run on every build, which is triggered upon every commit (or, after a slight delaying trigger).
Best Practices
- 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
- Make it easy to get the latest deliverables
- Everyone can see the results of the latest build
- Automate deployment