This document discusses the practices of continuous integration for building software features. It lists the key practices as maintaining a single source repository, automating builds, making builds self-testing, committing to the mainline daily, building every commit on an integration machine, keeping builds fast, testing in a clone of the production environment, and ensuring all work is visible to everyone. Continuous integration allows for more frequent integration and testing of code changes, which helps reduce the likelihood and impact of bugs.
3. PRACTICES OF CONTINUOUS
INTEGRATION
• MAINTAIN A SINGLE SOURCE REPOSITORY.
• AUTOMATE THE BUILD
• MAKE YOUR BUILD SELF-TESTING
• EVERYONE COMMITS TO THE MAINLINE EVERY DAY
• EVERY COMMIT SHOULD BUILD THE MAINLINE ON AN INTEGRATION
MACHINE
• KEEP THE BUILD FAST
• TEST IN A CLONE OF THE PRODUCTION ENVIRONMENT
• EVERYONE CAN SEE WHAT'S HAPPENING
7. EVERYONE COMMITS TO THE
MAINLINE EVERY DAY
COMMIT FREQUENTLY
(HOURS)
SPLIT YOUR WORK INTO
TASKS
8. EVERY COMMIT SHOULD BUILD THE
MAINLINE ON AN INTEGRATION
MACHINE
TWO OPTIONS:
1- MANUALLY
2- AUTOMATICALLY
9. KEEP THE BUILD FAST
TWO STAGE BUILDS:
1- UNIT TESTS
2- INTEGRATION TESTS
10. TEST IN A CLONE OF THE
PRODUCTION ENVIRONMENT
TEST ENV PROD ENV
- OPERATIONAL SYSTEM - OPERATIONAL SYSTEM
- DATABASE SOFTWARE - DATABASE SOFTWARE
- LIBRARIES - LIBRARIES
- IP ADDRESS - IP ADDRESS
- PORTS - PORTS