How to spread CI to the team

From CitconWiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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