Search code examples
.netjenkinsmsbuildcontinuous-integrationcruisecontrol.net

.NET Continous Integration - more than just a filesystemwatcher?


So I'm aware of tools such as Jenkins, CC.NET amongst others which are used for CI.

I was wondering, if you simply had a small tool built around a filesystem watcher watching your source folder which executed an MSBuild script whenever folder contents changed, would that be the same as a CI setup?

I've used CC.NET in all the places I've worked at so far so am aware it does things like email the last person to check in, report on the build status etc but in a nutshell, is there anything more to a CI system than what I've described?


Solution

  • Cruise control and other build systems are about integrating changes for a project from a trigger. These triggers are normally a commit or a merge which itself contains all the changes that need to be built.

    The issue with your idea/question is how do you determine that a change is complete?

    Imagine 2 files are altered. The build would be triggered after the alteration of the first. How would the build server know to wait for other alterations? Also who and what is involved in the change?

    The system you are suggesting does not fit with the premise of a build server. Commits and merges provide this level of detail and wrap up all the alterations for 1+ change.

    Using a (private) git repository is easy and straightforward and might be the best way to achieve what you want (depending on your environment).

    Edit: As it happens cruise control.net has a FileSystem source control option. It still poses the problems mentioned above, but does provide the option. I would still suggest using genuine source control, such as git.

    http://cruisecontrolnet.org/projects/ccnet/wiki/FileSystem