Permalink
Switch branches/tags
Nothing to show
Find file Copy path
d3ce654 May 26, 2014
1 contributor

Users who have contributed to this file

61 lines (52 sloc) 3.9 KB

Overview

Heaven is a rails app that receives Deployment events from GitHub and deploys your code. It works best with a hubot, and give you a chat-ops style workflow. It receives GitHub webhooks and runs deployment jobs as background tasks with resque. Heaven captures the standard input and output streams and posts the results to a gist.

+---------+             +--------+            +----------+         +-------------+
|  Hubot  |             | GitHub |            |  Heaven  |         | Your Server |
+---------+             +--------+            +----------+         +-------------+
     |                      |                       |                     |
     |  Create Deployment   |                       |                     |
     |--------------------->|                       |                     |
     |                      |                       |                     |
     |  Deployment Created  |                       |                     |
     |<---------------------|                       |                     |
     |                      |                       |                     |
     |                      |   Deployment Event    |                     |
     |                      |---------------------->|                     |
     |                      |                       |     SSH+Deploys     |
     |                      |                       |-------------------->|
     |                      |                       |                     |
     |                      |   Deployment Status   |                     |
     |                      |<----------------------|                     |
     |                      |                       |                     |
     |                      |                       |   Deploy Completed  |
     |                      |                       |<--------------------|
     |                      |                       |                     |
     |                      |   Deployment Status   |                     |
     |                      |<----------------------|                     |
     |                      |                       |                     |

Heaven aims to give you GitHub Flow. It allows you to deploy branches easily and always roll back to master.

The goal of heaven is to be one of many deployment systems that you can use with the Deployments API. It's a small app that receives webhooks for specific repositories. You can set up as many systems as you need to handle your web, mobile, native, compiled, and docker images while keeping the tooling the same through GitHub. You can also start evaluating new systems on a per-repo basis without introducing widespread breakage across a deployment systems userbase.

If you deploy from chat then this all starts to feel pretty natural.