DEV Community

norman
norman

Posted on

Explain AppVeyor, TravisCI, Continuous Integration

^

Top comments (1)

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

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.