There seems to be a misunderstanding between continuous integration (CI) and build automation. I was confused with this until recently when i looked deeper into the concept.
Build Automation: The process of automating a build process, on a nightly bases for example, as well as doing it manually when writing an application.
There tools that i use commonly for this are as follows:
Continuous Integration: This is the process of using “triggers” to listen to various events in order to perform some tasks. e.g. a developer checks into SVN CAUSING A TRIGGER to fire that will run a build of the solution and also will run the unit tests or automated acceptance tests.
The confusion seems to occur when CI tools are used for build automation but are not configured to use triggers to perform events
TeamCity is not one i have used but it seems to be easier to configure tasks than CCNET as CCNET requires everything to be configured via huge XML files .
This is apparent in my current employment setup :
On a nightly basis we schedule CCNET to automate builds via NAnt scripts. These are performed via NAnt scheduling and NOT via triggers. These CCNET scripts are pretty awful as they require configuration without a UI.
This has lead me to understand now that i currently perform build automation and NOT continuous integration. I guess the next step for me now is to start to use TeamCity in order to understand CI better and potentially use it on a small project at work
Received some great feedback/ advice for this:
“There is confusion, I would advise people to get to grips with nant first and when they have the build script working then try cc.net after. Trying to do both together before you understand the theory and technology can be very confusing and strange.”