Continuous Integration for a small .NET open source project

Open SourceContinuous IntegrationTeamcity

Open Source Problem Overview


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).

Open Source Solutions


Solution 1 - Open Source

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.

Solution 2 - Open Source

This is now provided by Microsoft for free for teams of up to 5 people by Team Foundation Server.

It provides:

  • Source Control: TFS, Git
  • Agile Planning: Agile, Scrum, CMMI
  • Continuous Builds
  • Collaboration
  • Integration
  • Test Execution
  • Deployment

Visual Studio Team Services doesn't require hosting code on it, code can be pulled from GitHub or any Git repository.

If the project is small and doesn't have complex requirements to build, Hosted pool can be used to perform CI builds. There're several limitations: available software, one build at a time, time limit of one hour etc. If it isn't enough, you can add your own build agents by running a script on your machines.

GitHub support isn't full (pull requests aren't built, for example), but most functionality is supported. Shields.io doesn't support VSO yet, but a custom shield is available.

The primary drawback for open-source projects is that build logs, test results and other data won't be public. Only five users can be given access to the project on a free account. There's a suggestion on UserVoice to make public projects possible.

Solution 3 - Open Source

I know the thread is quite old, but for the people still looking for the answer I recommend taking a look at AppHarbor

It is pretty easy to setup integration with Github and Bitbucket, and you have basic db connections for free through "addon" options.

Quite convenient for startups.

Solution 4 - Open Source

Also take a look at CodeHaus:

http://codehaus.org/

They use Atlassian's Bamboo CI software.

No opinion - as I've never used it.

Solution 5 - Open Source

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.

Solution 6 - Open Source

I've just started using OnCheckin:

https://oncheckin.com/

They exclusively provide for .NET projects.

Solution 7 - Open Source

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.

Solution 8 - Open Source

MikeCI is an affordable hosted CI service, from $10 per month you can have a cloud build set up in minutes. It currently supports Ruby, Maven and Ant. It has a Free 30 day trial so you can try it and see what it's like. I personally think it's great, plus I think they're looking to support .Net and Objective C!

here's their site http://www.mikeci.com

Solution 9 - Open Source

I know this is probably an old thread, but

Here's another option:

Checkout Jenkins.

It does supports Jenkins.NET which I'm using right now.

And here's another SO-RELATED-THREAD: https://stackoverflow.com/questions/7668740/tfs-2008-2010-vs-jenkins-for-continuous-integration

Solution 10 - Open Source

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionripper234View Question on Stackoverflow
Solution 1 - Open SourceFernando VezzaliView Answer on Stackoverflow
Solution 2 - Open SourceDean ForbesView Answer on Stackoverflow
Solution 3 - Open Sourceni5ni6View Answer on Stackoverflow
Solution 4 - Open SourcetgiphilView Answer on Stackoverflow
Solution 5 - Open SourcePascal ThiventView Answer on Stackoverflow
Solution 6 - Open SourcePaulView Answer on Stackoverflow
Solution 7 - Open SourceAndrew McGregorView Answer on Stackoverflow
Solution 8 - Open SourceMike JessopView Answer on Stackoverflow
Solution 9 - Open SourceRoy LeeView Answer on Stackoverflow
Solution 10 - Open Sourceripper234View Answer on Stackoverflow