views:

69

answers:

3

I ask this question because I find the the community contributions to the various build engines (like MSBuild and NAnt) do include all the tasks that promote for CI servers, like getting versions from source control, cleaning folders, changing build numbers, sending emails, etc...

Is it only because it "listens" to the changes happens on the source control repository? what else am I missing?

+1  A: 

I believe CI (Continuous Integration) feature matrix will answer all your questions about particular CI providers and their capabilities.

Grzegorz Oledzki
+4  A: 

Grzegorz Oledzki linked a good resource for finding the differences between multiple CI solutions, but it should be noted that the intent of MSBuild is to specifically turn code into binary and is used by CI software to build the source. It's true that it can do other things but most of its tasks lie closely within that realm.

In addition to what you mentioned about listening to the repo, some CI servers can do all kinds of things like^1:

  • multi-agent building (not just multi-core, msbuild can do that, but multi-machine)
  • monitoring build status
  • notifications (e-mail/sms/rss/whatnot)
  • assigning blame for broken builds
  • administrative features
  • supporting XFDs (extreme feedback devices)
  • automated deployment

And generally all from a handy UI.

1 Not all CI software will have all of these features, it is by no means meant to be exhaustive and there is some overlap.

SnOrfus
+1  A: 

Wow there are just so many answers to this. As for what a CI system can do that a Build Script can't do other than listen to your Version Control System... Well for starters systems like TeamCity can let you first test your code on the build server and then check it in if it passes all the tests for starters.

I highly recommend using a CI server but I prefer to keep all of the build logic in a MSBuild file and all of the who to notify when it fails etc. in the CI server. Keeping the logic in the Build file helps you to reproduce the build on your own machine and makes it simple to set up new projects in the CI server or to change how the CI server builds the project

runxc1 Bret Ferrier