Continuous Integration for a small .NET open source project

Viewed 11307

I'm starting a small open source project, myself being the sole contributor for the time. Still, I think a continuous integration setup would be useful to detect whether I broke the build.

Is there a free, hosted continuous integration server that is suitable for very small projects? Googling turned up CodeBetter, but I'm not sure they'll accept a one-man project that is just starting up.

I prefer TeamCity, but I'm open to suggestions.

Note - a hosted solution is a must for me. I don't want to setup and maintain a continuous integration server, so answers like "TeamCity" or "CruiseControl" are simply irrelevant.

Specific requirements:

  • I am hosting my project at GitHub, so the continuous integration server needs Git integration
  • I would like the continuous integration server to run .NET integration (unit) tests
  • Nice to have - I also need access to a MySQL server (although I could modify the tests to use embedded SQLite, they currently run against an external MySQL server).
10 Answers

AppVeyor is well integrated with Github, free for open-source projects and really easy to set up.

Builds are configured using YAML or UI. Free accounts are limited to one build at a time. Deployment to NuGet is supported, as well as project and account feeds. It is deeply integrated with GitHub, for example allows creating releases. It supports build matrices, AssemblyInfo patching, rolling builds, build prioritization, status badges, build notifications etc.


Travis is well-known CI (and seems to be the most popular hosted CI by far), now it supports building C#, F# and VB projects too. The caveat is that it supports only Linux and Mono and it's in beta ("may be removed or altered at any time").


MyGet is a hosted package server, but now it supports Build Services too (currently preview) and other features. It's free for public feeds (500 MB max) and has slightly better features for approved open-source projects (bigger storage and gallery). Build service is optimized for packages: NuGet feed, MyGet feeds, SymbolSource integration etc.

Also take a look at CodeHaus:

http://codehaus.org/

They use Atlassian's Bamboo CI software.

No opinion - as I've never used it.

I don't think that you will easily find a real free (by this I mean for any project, any language) hosted CI service because such a service is very CPU, RAM, disk intensive which implies specific rules, hardware, pricing.

For some offers, have a look at Outsourcing Continuous Integration or this question here on SO. I didn't look at all solutions in detail so I don't know if they'll meet your requirements (language, tool and pricing).

Or try to join a forge providing Continuous Integration for open source projects like The Codehaus (EDIT: not an option for .NET projects AFAIK) or CodeBetter. This will certainly require some efforts to get your project accepted (few actually are IMHO) but this might be your best option.

Maybe the right answer is for someone to make a set of EC2 images available for this sort of thing, so users can either use Amazon, or build their own cloud on Eucalyptus inside the firewall if they're paranoid... but in either case, you save the time and cost of building those images.

There's RunCodeAt, which Pascal's comment pointed me to. It is super easy to integrate with github, which I happen to host my project on. I'll give it a try.

Related