- Compile the code contained in the files being checked in. If it doesn't compile an email is fired off to the developer who checked in the offending code, asw well as the tech lead, etc.
- Run all unit tests written for the code being checked in.
- Run integration tests between the code being checked in and the rest of the application or component.
- Run QA tests on the code being checked.
- Run code review tests on the code being checked in.
Most likely you would not do all of the above with every check-in. For a .NET application you might use CruiseControl.NET and NUnit. The seminal CI article can be found here. It is considered an integral part of many Agile approaches but clearly holds great value in just about any development/SDLC environment.