Using AppHarbor for Continuous Integration


I thought it would be interesting to use AppHarbor as a quick way to get some code with tests under a continuous integration environment. Along with this, if I could also use the AppHarbor deployed web site to serve that file, even better!

AppHarbor

What: If you haven’t heard about AppHarbor yet, go check it out. They offer Git and Mercurial hosting that will also run unit tests (with various frameworks). You’re able to deploy different versions of your site with a single click and they have SQL Server support.

Why: It’s free and easy. It runs your tests. It lets you deploy any version of your code. It’s getting better each day.

Continuous Integration

What: Why should I describe it when others can do so much better:

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage. – Martin Fowler

Why: Deliver your most current build through a web site by typing “git push AppHarbor master”. It wont build your binary unless your tests pass. This means there’s no way to push a new downloadable version of your code unless all tests pass; it’s just nice and easy.

How to do this?

The code is super simple, you can download the assembly to do this from the application that actually does it. Visit http://cheap-ci.apphb.com.</p>

Some Questions and Thoughts

I don’t know if this is useful or not, but I wanted to try it. Let me know what I’m missing or doing wrong. Let me know if there’s something to do better. The thought popped in my head the other day, and now that I have a proof of concept, I thought I should share.

New (to me) Applications