CI and automation best practices
CI is an agile practice that improves and facilitates software development processes. It requires developers to check-in the code frequently in a centralized source code repository. Every check-in triggers a new build job that—at least—compiles the code, runs unit tests, and builds the required artifacts (binaries, packages, and so on). This is the minimum set of activities that typically run on a CI environment. More sophisticated tasks, like nightly builds that run functional tests across different operating systems or different devices/emulators when living in the Android worlds, can also be achieved with proper configuration.
If setting up/using an SCM is considered as the "step A", when starting a new software development project, then setting up CI jobs is definitely the "step B". We can choose from a variety of open sources and commercial CI tools like Jenkins (http://jenkins-ci.org), TeamCity (https://www.jetbrains.com/teamcity/), Travis (https:/...