views:

220

answers:

5

Assuming you're doing CI, the title really says it all: What tools do you use?

In our case we're a .NET development shop, and are using

However we're hitting some performance issues with Subversion and the number of Cruise build agents & pipelines we're running, so are looking at using Git in the back-end to alleviate this. However the Windows version of Git is giving us problems (seems a little too "beta") so we think we need to go with the Linux version.

Downside of this is that it is further increasing the skillset required of anyone who's going to administer this setup.

So, what tool(s) do you use for your version control and automated build/deployment? Please also mention what your development platform is.

+8  A: 

We use open source tool Hudson. It's a really nice tool for doing automated builds. It's not just for building, though. You can use it to run tests, provide code coverage reports, send out email notifications, etc.

(Our development platform is primarily linux+java)

Bryan Oakley
We're using Hudson as well, and we have a mix of Java and C++ on Windows.
mskfisher
+3  A: 

Team City as the CI server - free for a limited amount of projects.

No nasty XML configuration, a nice web GUI instead. Team City can be configured with different build systems too, NAnt, MSBuild et al. Other tools can also be set to work with TC too, such as running unit tests via a runner.

Finglas
What version control system do you use in conjunction with Team City?
Richard Ev
@Richard - Subversion but it supports others. SVN plays nicely, I can report that from experience.
Finglas
@Finglas. Thanks for the response. Can you say how many TeamCity build agents you have? (this seems to be what has caused the svn bottleneck for us - lots of cruise build agents doing updates simultaneously)
Richard Ev
About nine, three projects with nightly, release and continous builds. They are staggered though, s bar the continious builds which are run upon checking in code, they kick off at different times. As for more scalabiity I can't comment.
Finglas
+2  A: 

At my current job (contract for a very large company. About 90% Microsoft/.NET dev), my group is automating builds and unit testing with TeamCity on our new applications.

I set this up and started with MSBuild on TC, but I'm trying to push to Nant build files and some more standards on new projects. (using the templates in VS2008 to generate as much of the build setup when a new project is created)

Source control here is scary. A lot of groups still use VSS (including mine, which is no fun) with a corporate push towards TFS this year. I'd prefer to go a DVCS (git or something), but it will not happen in this environment. In fact, I'm not sure TeamCity will get to stay once the company shifts to TFS 100%. But, my thoughts are, we will be so far advanced with CI by the time that happens, that TFS may not cover our needs. But back to TeamCity, it supports VSS just fine and that has worked out.

As far as deployment goes, I'm messing around with Microsoft's Web Deployment Project add-in as well as a config in Nant. The Nant approach is obviously more flexible, but trying to teach connect-the-dot developers Nant scripts is a bit much sometimes.

Hope that helps a little. The TeamCity "demo" will give you 20 build configurations for free.

I should note that I tried CruiseControl.net and Hudson. Both are excellent apps (and free), but I knew that the simplicity of setting up a new build in TeamCity would be required for the others in my group. Otherwise, people would simply just not do CI once I'm gone.

adam.mokan
Forgot to add - Our primary applications in TeamCity are C# 3.5 "webforms" and MVC projects. I have a couple small console apps that are also in CI. Unit testing is nUnit right now. May have to switch to MSTest if we move into TFS. I'm also automating FXCop analysis in TeamCity on most of the builds.Extremely easy to setup.
adam.mokan
Also - check this recent blog post for how someone has setup TeamCity and MSDeploy to deploy their apps.http://therightstuff.de/2010/02/06/How-We-Practice-Continuous-Integration-And-Deployment-With-MSDeploy.aspx
adam.mokan
+1  A: 

My shop is Java/Windows, using IBM software; ClearCase, WAS, WMB, WPS. We went with Hudson, and it's done some wonderful things for productivity.

We also use a small stuffed animal, in this case, a singing Frosty The Snowman that's about 12" high. Whenever a developer breaks the build, as identified by Hudson, they have 15 minutes to clean up the mess, or Frosty winds up on their desk. Frosty stays there until someone else screws it up the same way.

I've had Frosty once or twice, as has all of the team; it helps mentally encourage better coding practices, or at the very least, coding practices that don't handicap your teammates.

Dean J
A: 

i used to use cruise control.net, nunit, fxcop, ncover, xmlpreprocess, nant and a few others before transitioning to TFS where I am doing alot of sharepoint development. I have not invested in a CI process for sharepoint development do to constraints on our project but i have developed msbuild tasks and subscribed to TFS events to simulate the CI process with TFS 2k5. I have not looked into it at all for TFS 2k8 but its definately supported.

Athens