Continuous Integration Patterns
  • Everyone in the team should integrate frequently; usually daily or more.
  • The term CI comes from XP as one of its original practices.
  • Using a CI server is not a must but is really helpful. Something like Cruise Control.

Minimal Dependencies

Reduce pre-installed tool dependencies to the bare minimum. Developer should not need to define different tools, environment valirbales, etc for the build/deployment to work.

Single Command

All build and deployment processes can be run through a single command not requiring people to enter multiple commands and procedures such as copying files, modifying configuration files, restarting a server, setting passwords, and other repetitive, error-prone actions.

Build Threshold

Notify team members of code aberrations such as low code coverage or high cyclomatic complexity. Fail a build when a project rule is violated. Use
continuous feedback mechanisms to notify team members. Anti-Patterns: Manual code reviews.

Remote Deployment

Use a centralized machine or cluster to deploy software to multiple target environments instead of manually applying deployments locally in each target environment.

Environment Rollback

Provide an automated Single Command rollback of changes after an unsuccessful deployment.

Feature Branches

to add new features teams usually add a new branch instead of working on the main branch. There are two method to make teams work on the main branch instead of code branching:

Reference

  • A DZone Refcard related to CI
  • Martin Fowler
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License