Standardizing build outputs
The build process (especially the packaging and publishing phases) marks a foundational corner stone for automated deployments. For this reason, it is important to understand the basic lifecycle of a typical build process. The aim of the build process is generally to automate the validation of compilation quality of source-controlled assets, automate the creation of viable artifacts, and provide a software product that engineering can potentially hand to the business. While the technology stack may vary across organizations, typical build processes will follow a similar set of automation patterns. Let's look at the basic flow of a generic build process:
Obtain a clean copy of the source code from source control.
Fetch any dependencies (preferably from an artifact repository).
Version stamp any necessary code (may be a pre-compile or post-compile step, depending on the technology stack).
Compile the source code and verify syntax.
Execute unit tests (unit-based validation...