How to spread CI to the team

From CitconWiki
Jump to navigationJump to search

How 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