loading...
markdown guide
 

At a high level, the purpose of CI is to provide two things:

  • A guarantee that the build works on each commit. This is important because it makes it significantly easier to figure out what commit actually introduced a bug (if the build works on every commit, then you can use a simple binary search starting with the last known good version to figure out where the bug got introduced).
  • Testable builds for each commit. This makes code review much easier, as well as simplifying things for your testing/QA team because they can always pull an up-to-date copy of the application to test (and, depending on how you have things configured, they can go back and pull a copy from any older commit as well).

Depending on the CI tool and the configuration, you may also get a number of other checks. For example, one of the FOSS projects I contribute too (Netdata) has TravisCI configured to run code checks, unit testing, and verify that it's deployable on more than a dozen different Linux distributions.

Classic DEV Post from Apr 5 '19

What was your win this week?

Got to all your meetings on time? Started a new project? Fixed a tricky bug?

norman profile image
🤠 cowboy - ✝️ Jesus lover - ☕ JavaScript lover