Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What tool to use for automatic nightly builds?

I have a few Visual Studio Solutions/Projects that are being worked on in my company, which now require a scheme for automatic nightly builds. Such a scheme needs to be able to check the latest versions from SVN, build the solutions, create the appropriate downloadable files (including installers, documentation, etc.), send e-mails to the developers upon errors and all sorts of other nifty things. What tool, or tool-set, should I use for this?

I used to use FinalBuilder a few years ago and I liked that a lot but I'm not sure if they support such features as nightly-builds and email messages.

like image 426
Alfred B. Thordarson Avatar asked Sep 01 '08 09:09

Alfred B. Thordarson


2 Answers

At my work we use CCNET, but with builds on check-in more than nightly - although it's easily configured for either or both.

You can very easily set up unit testing to run on every checkin as well, FXCop testing, and a slew of other products.

I would also advise checking out Team City as an option, because it has a free version, and the reporting and setup is reportedly much simpler (it does look nice to me). It does have a limit of somewhere around 20 team members/projects, before it hits a pay-for window.

That said, we started with CCNET, and have grown several products too large to look at Team City on the free version and are very happy with what we have.

Features that help with CCNET include:

  • XML based configuration - you can usually copy and paste most of what you need.
  • More or less you'll be able to plug your treesurgeon script in as your build script, and point CCNET at that as an executable task to run the compilation.
  • Lots of documentation and very easy to set up nunit, ncover, fxcop, etc.
  • Taskbar app that will let you know the status of your projects at any time, and it can also fire off an email or keep an RSS feed with the same information.

But I'd definitely go with running a CI build on every check-in - for the most part will run the unit tests before checking in, but let the CCNET server handle run any applications/assemblies that would have dependencies on the assembly we're checking in, and they get re-built, and re-tested on every checkin.

Given that CCNET is free free and takes very little time to set up - I'd highly recommend just going for it and seeing if it suits you, then expanding from there.

(There's another thread here where I posted pretty much the same/with a few alterations - but some of the other comments may help too! Automated Builds)

Edit to add: You can easily set up your own deployment scheme for CCNET, and there are a tonne of blog posts out there to assist, and email notifications can really be set up fairly granularly, either on all successes, all failures, when it changes from success to fail, etc. There's also built in RSS, and you could even set up your own notifiers for other systems.

like image 126
crucible Avatar answered Dec 06 '22 22:12

crucible


FinalBuilder does support emailing and just executing FinalBuilder each night will give you nightly builds. You don't really need other software for that if you don't want to.

You could also use CCNet to trigger a build when needed and have it execute FinalBuilder for the build. You can then decide if FinalBuilder or CCNet should email.

Finally FinalBuilder has a Server version which is sorta like CCNet in that it is a continues integration tool using FinalBuilder. See http://www.finalbuilder.com/finalbuilder-server.aspx

Of course the biggest advantage of CCNet is that it is free and open source.

like image 32
Lars Truijens Avatar answered Dec 06 '22 21:12

Lars Truijens