Question

OK, so we all know the daily build is the heart beat of a project, but whats the single best way of automating it?

We have perl scripts wrapping our pipeline which includes ClearCase, VS2005 (C++), Intel FORTRAN, Inno setup. We use cron jobs on UNIX to schedule the build, and host a simple Apache web server to view and monitor the build. All in all its rather complex, I would like to know whats the best off the shelf solution that people use?

And yes I did say FORTRAN no escaping it sometimes, it works, no point doing a huge re-implementation project for some tried and tested FEA code that just works.

Was it helpful?

Solution

We're in the process of implementing CC.Net. So far it seems like it would fit your model pretty well.

Out of the box it offers automated building, results tracking and notification. I'm not sure how detailed the build-in-progress monitoring is though.

OTHER TIPS

A new one to me that I've heard is quite slick is hudson - also with MSBuild support.

There are many tools that specifically handle this:

The tools have out of the box support for the most common build types. They all also support some sort of "run this script" type build process.

In the end you should use the nicer build tools (MSBuild, Ant, Maven, Make, ...) where you can and fill the gaps for the odder tools with custom scripts. The automated build can just invoke these in the right order.

Here is the best resource we found to help us pick a Continuous Integration tool. We have been evaluating 5 or 6 tools on this page.

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

We use TeamCity - but then its a simple C#/Java development - maybe your pipeline can done via scripts it can drive?

I have had success using Visual Build Pro.

CC.NET is very powerful. Used it and was really happy about it. Even the status icon in the systray. It's a small detail, but it gives you a good overview of the project's "health". You immediately feel motivated to fix the tests when you see it red.

Now we use a self-baked series of scripts. Since we write Python, compilation is non-existant, so the only problem is running the tests.

If you're working with Visual Studio, be sure to check out Team Foundation Build to see if it will suit your situation.

It looks like Buck Hodges' blog post on the VS 2008 version is a good resource, too.

I know this is a really old question, but it's still coming up in searches, so someone should mention Jenkins - the open source continuation of Hudson.

From the Jenkins wiki:

Among those things, current Jenkins focuses on the following two jobs:

  • Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
  • Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.

It was originally built with Java in mind, so it integrates well with lots of other Java tools, but you can use it with any language, including all those mentioned by the OP.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top