We have a small development team that have recently moved to using github to host our projects.
The team consists of three developers, 2 on Windows and 1 on Mac.
I am currently researching the best way to deploy applications to our Linux servers (dev and production).
Capistrano running locally would be ideal but from what I read this won't work for Windows machines.
It looks like the best way is to use a post-receive hook in github, I can see how this would work for auto deploying to dev, but I don't see how we could then deploy to live.
I have found paid projects like http://www.deployhq.com/ but it feels like something that a quick bit of code should be able to do for free, I just can't seem to get myself pointed in the right direction!
I was wondering what would be considered best practice for small team deployment involving multiple local OS's and github.
At the risk of blowing my own horn, I'd recommend giddyup. This reduces deployment to a
git push
to a special repo you setup, with all remaining deployment operation done on the destination server with hook scripts you write to suit your application.We use Webistrano, which is a web frontend to Capistrano. It supports various VCSs, such as SVN, Git and Mercurial. It supports deploying to multiple servers simultaneously, transactions, and rollbacks.
Due to its Capistrano roots, it's easy to script things like flushing caches after deploys, etc.
We're quite happy with it. It requires few resources and simply runs as a Rails app under Passenger. Our fork, with some bugfixes, can be found at https://bitbucket.org/insiders/webistrano/.