Anatomy of an Automated Build Process (items marked with bold face are critical)
- get the latest source code version
- compile projects on latest version
- deploy build output to test server
- run tests locally on the test server
- create archive of build outputs (number, date)
- deploy outputs to staging and production
- notify relevant people if any test has failed (by email)
- merge databases
- create reports on build quality, history, test statuses
- file issues automatically if the test has failed
Continuous integration = making the automated build and integration process run continuously.
Types of automated builds
- nightly build - for long running tests and system tests
- release build - runs nightly build, then deploys to server and archives
- continuous integration - every few minutes (ex. 10) runs the fast tests