automate the build and testing of code after each commit
Even when you work by yourself on several branches of one project there is a possibility of some conflicts while merging the changes. The merging issues are much more serious when many developers work on one project simultaneously and do not integrate their code frequently.
Continuous (frequent) integration is the key to avoid merging conflicts and always have the testable code that compiles. Because it takes too much time and effort to integrate all the changes and make sure they work, automation of this process is done with the build.
Build is not just code compilation, it is a set of activities to generate, test and deploy software. There are a lot of different types of builds: incremental builds, scheduled builds, release builds etc.
Usually build cycle includes such steps as
but phases of the build cycle depend on the type of the build and on its complexity, as, for example, large and complex software requires longer and more complicated builds. All the steps of the build are described in build files, which are called also configuration files or jobs. A popular build file developed in 1970s was the Makefile, a classic Unix build tool.
Automated build process is the core element of the continuous integration, a development practice which aims to trigger the automated build and testing processes after each code change commit.