views:

266

answers:

5

Is a CI server required for continous integration?

+8  A: 

In order to facilitate continous integration you need to automate the build, distribution, and deploy processes. Each of these steps is possible without any specialized CI-Server. Coordinating these activities can be done through file notifications and other low level mechanisms; however, a database driven backend (a CI-Server) coordinating these steps greatly enhances the reliability, scalability, and maintainability of your systems.

ojblass
+3  A: 

You don't need a dedicated server, but a build machine of some kind is invaluable, otherwise there is no single central place where the code is always being built and tested. Although you can mimic this affect using a developer machine, there's the risk of overlap with the code that is being changed on that machine.

BTW I use Hudson, which is pretty light weight - doesn't need much to get it going.

MrTelly
+2  A: 

It's important to use a dedicated machine so that you get independent verification, without corruption.

For small projects, it can be a pretty basic machine, so don't let hardware costs get you down. You probably have an old machine in a closet that is good enough.

You can also avoid dedicated hardware by using a virtual machine. Best bet is to find a server that is doing something else but is underloaded, and put the VM on it.

Jay Bazuzi
+1  A: 

A separate machine is really necessary if you have more than one developer on the project.

If you're using the .NET technology stack here's some pointers:

  1. CruiseControl.Net is fairly lightweight. That's what we use. You could probably run it on your development machine without too much trouble.
  2. You don't need to install or run Visual Studio unless you have Visual Studio Setup Projects. Instead, you can use a free command line build tool called MSBuild.
Josh Kodroff
+1  A: 

Before I ever heard the term "continuous-integration" (This was back in 2002 or 2003) I wrote a nightly build script that connected to cvs, grabbed a clean copy of the main project and the five smaller sub-projects, built all the jars via ant then built and redeployed a WAR file via a second ant script that used the tomcat ant tasks.

It ran via cron at 7pm and sent email with a bunch of attached output files. We used it for the entire 7 months of the project and it stayed in use for the next 20 months of maintenance and improvements.

It worked fine but I would prefer hudson over bash scripts, cron and ant.

sal
An instance of reaching the same good conclusion using simple tools to get the job done.
ojblass