CI Fundamentals

From CitconWiki
Revision as of 22:27, 27 July 2007 by Jagraham (talk | contribs) (New page: == What is CI? == * Source code management integration * Removes repetitive, laborious actions * Automated tests? ** Sometimes * Automated builds? ** Fancy cron job, build scripts * Autom...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

What is CI?

  • Source code management integration
  • Removes repetitive, laborious actions
  • Automated tests?
    • Sometimes
  • Automated builds?
    • Fancy cron job, build scripts
  • Automated deployments?
    • Seldom
  • Standards / Conventions / Metrics
    • Coverage metrics
    • Code style, format
    • Development team metrics
  • Something more ... ?

Continuous Integration

  • Continuous = ALL THE TIME
  • Integration = Combining the changes from all developers
  • When should I check in?
    • As often as possible
    • Make “more often” more possible
  • What should I do before I check in?
    • Shout out, have conversation – especially when you’ve just made cross-cutting or complex changes
    • Is it already broken?
    • Update from SCM repository
    • Pre-commit build
  • How long should it take?
    • As quick as possible
    • Make “more quick” more possible
    • < 10 minutes (this is already painfully long)