Software Build Automation with Continuous Integration such as Jenkins
Successful Highly Configurable Software implementations use hierarchical key configuration points (KCPs) to produce a single set of deliverables for all environments (See our previous article, Hierarchical Properties for more information). This single set of deliverables can be used to automate the build process following DevOps best practices.
The automated build process must produce a single set of deliverables to be used across all environments. Highly Configurable Software facilitates this single set of deliverables via its hierarchical KCPs, solving problems like building different deliverables per environment, unpacking and modifying the deliverables in each environment, or copying and modifying a separate set of configuration files for each environment. After being built, this single set of deliverables ideally should be placed in a Centralized Management Repository where it can be version controlled and easily distributed throughout all environments easily and from a centralized source.
Automated builds must be simple such that everyone on the team can perform them. The automated build process must be included in the configuration management strategy, as this is the easiest way to share knowledge across the team. Automated build tools allow the process to be closer to the code, making it easier for the team to manage and maintain. In addition, Continuous Integration (CI) tools allow for continuous building via the automated process, including deploying to a Central Management Repository.
By implementing Highly Configurable Software and build automation, teams will increase their productivity on other tasks by decreasing their custom configurations and human interaction. Repeatable, dependable automated builds eliminate human error and save time via automation.