How to spread CI to the team
From CitconWiki
Jump to navigationJump to searchHow to spread CI to the team:
Why bother?
- Spread the burden of maintaining the system
- The more that people ensure their code/new feature is easily testable the greater the reduction in complexity of the CI system making it more reliable
- Consequences of bad builds are potentially costly
War Story:
- Fed up doing "continuous repairing" of the build where one person was maintaining the build and tracking down issues when a break was encountered
- Very time consuming and difficult because people were still submitting changes after the build was broken potentially adding other issues
- Made producing builds for demos potentially a nightmare
How do we change the culture to ensure that developers make their code easily testable and or add tests?
- Educate the developers on how to use the testing framework
- Remove any barriers for running the tests (i.e. keep the process as simple as possible)
Alternative to requiring a change in culture:
- Separate features are developed on a separate branch that is automatically spun up from mainline
- Feature branch must run through all tests up to the acceptance tests before being allowed to submit back to mainline
Example setups:
- Jira - Team City - Git
- Subversion for mainline - Git for branches
- Team Foundation Server for mainline - Git for clients
- Team City - Perforce