Continuous Integration with Visual Studio 2010


Recently, I was looking for some free tools which can help me in Continuous Integration for my project. I was developing a project in C# using VS2010 and  using TortoiseSVN and AnkhSVN for version control.

Scenario:

I want a FREE tool that runs on the build server and checks for fresh commits. If the commit breaks the trunk then I want email notifications sent. I also want this tool to run all his MSTest tests periodically and send emails if there is a failed test.

Solution 1: CruiseControl.NET

CruiseControl.NET is an Automated Continuous Integration server, implemented using the .NET Framework.

Build Server Scenarios

  • Setting up Source Control
  • Build on Check-in
  • Add unit tests
  • Add Coverage
  • Add source code analysis
  • Add packaging
  • Deploy Package

Check this for more details: http://www.cruisecontrolnet.org

Solution 2: TeamCity

TeamCity is free for up to 20 build configurations and has an easy to use Web/GUI interface.

It Provides

  • building Visual Studio solutions; native support for MSBuild, Powershell or NAnt
  • code analysis for C#, VB.NET, XAML, and many other languages powered by ReSharper
  • testing with .NET testing frameworks, including: NUnit, MSTest, MSpec, xUnit and all Gallio-based frameworks
  • code coverage with dotCover, NCover or PartCover
  • best-in-class NuGet support

Check this for more details: https://www.jetbrains.com/teamcity/features/

Solution 3: Jenkins/Hudson

Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. 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.

Check this for more details: https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Check this for Jenkins.NET: http://justinramel.com/2012/09/17/jenkins-dot-net/

Summary

All these tools are free and you can choose any of them. They serve the same purpose “CI – Continuous Integration“.

Hope this will help !!!

Jay Ganesh

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s