Two of the key aspects of continuous integration is to build all commits and to have a build process that is automated. A build converts source code, files, and other assets into a software project that is in its final, usable form. This may include things such as the following:
- Dependency checking
- Compiling source files
- Packaging compiled files into a compressed format (for example, JAR or ZIP)
- Creating installers
- Creating/updating database schema
- Executing data change scripts to modify data in a database
- Running automated tests
As a software architect, you will want to establish an automated build process if one is not already in place. Some builds require many steps, and performing these manually creates many opportunities for mistakes to take place. Automated builds eliminate the variation that can take place with manual builds, ensuring consistency between builds.
Automated builds are what make it possible to execute builds at any time. In the practice of continuous integration, automated builds are essential, and should take place when changes have been checked in to a version control system. The duration of automated builds should not be too long (for example, less than 20 minutes) to allow continuous integration to be feasible.