Run lightweight “commit” builds that perform compile, unit test execution, and deployment followed by heavyweight “secondary” builds that include component, system, and other slower-running tests and inspections.
First run an initial integration “commit” or lightweight build that integrates the software components and runs unit tests to root out any obvious problems. After this lightweight build is successful, a more exhaustive integration build is run to include component tests or system tests, inspections, and deployment.
[Duvall et al. 2007, “Building Software at Every Change”]
Advertisement