views:

94

answers:

2

I am developing a ruby on rails website using heroku and git.

What tools and features should I use to set up the following simple development process?

CODE > CHECK-IN > AUTO TEST > AUTO DEPLOY

  • I check my code into my repository (preferred option, hosted git like github)
  • Tests are automatically run AND website is deployed in my staging heroku app
  • If tests pass, the website is automatically deployed on my production heroku app
  • If tests fail, I want to be notified somehow.

How would you do this?

A: 

Well, there is Hudson which provides a git plugin as well as scripting support. The rest is configuration, I would guess.

Hudson: http://hudson.dev.java.net

ZeissS
Can you recommend any hosted hudson provider?
Aymeric
No, I don't think there is some kind of hudson hosting, but it is easy to setup and configure. You could even run it on your developer box.
ZeissS
A: 

We use Integrity. It is a pretty simple solution - it won't do everything under the sun, but it's quite easy to set up and handles the most common use cases/features. It's also pretty easy to hack on, if you want it to do more.

Integrity states:

Heroku is the easiest and fastest way to deploy Integrity.

However:

NOTE
It isn’t possible to access repositories over SSH on Heroku

This is because your Integrity app will need an SSH key. It's not impossible, but definitely a few hoops to jump through. You'll need to give Integrity a private key and put it in the app, and then hack Integrity to use that ssh key when it initiates the git clone.

Of the things you listed, the automatic deploy is probably the thing most people would not expect their CI server to do (and Integrity does not provide out of the box). You'll need to configure git to use that ssh key and initiate a git push from the proper location (the checked out repository).

Unfortunately I don't know the details of how to do this--we actually run Integrity on a VPS.

wuputah