I have been charged with setting up a CI server in my company and I am looking for some advise on what build configs i need for my projects.
As a first step i have set up the builds as:
Commit Build: Compiles code and runs unit tests
Integration Build: Compiles code and runs long running integration tests
I am unsure what else i would need to complete the CI picture. For example What build configs do you have in your shop?
I know there must be a step for deploying my successful builds, but would l make the deployment part of Integration?
Using TeamCity, MSBsuild and SVN
Looking for much needed advice.
Best Answer
The most complete build I ever saw did the following things in the given order. There are two groups, all targets in each group are executed regardless of failure, but the group fails if a member of the group fails. So we see ALL problems.
First group working on sources:
Second group is working on the produced code, only if the first step succeeded:
This is the main build that is triggered time after time for commits. It did a lot, but with some powerfull machine using several cores it was around 4 mins for 500k LOC. Testers can get the newest snapshot builds if they like to.
Long running integration tests (2 hours each) would run once per night and only do
Another build was a purely documantion build, triggered once per night. It would never fail.