Continuous Integration (CI) with Jenkins
Continuous Integration is the idea of running a full build every time someone on a team publishes new changes to source control (such as git). The idea of setting it up allows for greater visibility into changes, by finding which build exhibits problems and which doesn't as every build happens immediately following a change in source. This process allows QA to quickly and easily track the life of a bug. By marrying the CI server with other tasks such as Unit tests to check on the system, we get a higher level of confidence that the code under test is stable. A competent CI system can run several tasks that are often viewed as a drudgery by developers to try and run at regular intervals. Unit Tests, Integration Tests, code coverage reports, profiling, memory consumption reports, and quick / easy build deployment with automated publishing are just some of the common tasks a Jenkins server can be found doing. As we're embedded developers, we often will have to target both iP