Search code examples
msbuildnantcontinuous-integration

What can CruiseControl .net (or any CI server) do that MSBuild or NAnt can't?


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?


Solution

  • 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.