continuous inteagration (CI) - nateleavitt/mindump GitHub Wiki

< back to index

The goal of continuous integration is that the application is in a working state all the time. CI is a practice NOT a tool!

  • represents a paradigm shift - Your software is broken until somebody proves it works, usually during a testing or integration stage
  • the application is built and comprehensive tests are run against it on every commit

Benefits of CI

  • deliver software much faster
  • fewer bugs - bugs are caught much earlier in delivery process
  • cheaper to fix - significant cost and time savings

Three things needed before CI implementation

  • version control
  • an automated build - be able to build and run test scripts from the command line.. apart from IDE
  • agreement of team - smaller commits, more often.. it is a practice not a tool

Essential Practices

  • do not check in a broken build
  • always run all commit tests locally before committing
  • wait for commit tests to pass before moving on
  • never go home on a broken build
  • always be prepared to revert to previous revision
  • time-box fixing before reverting (10 min?)
  • do not comment out failing tests
  • take responsibility for all breakages that result from your changes
  • test driven development

< back to index