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.
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.
- 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/
All these tools are free and you can choose any of them. They serve the same purpose “CI – Continuous Integration“.
Hope this will help !!!