Continuous Integration for a small .NET open source project [closed]
Closed 8 years ago.
- Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it. 开发者_运维百科
- Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
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).
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.
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.
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.
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.
I've just started using OnCheckin:
https://oncheckin.com/
They exclusively provide for .NET projects.
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.
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
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: TFS 2008/2010 vs Jenkins for Continuous Integration
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.
精彩评论