Skip to content

Latest commit

 

History

History
60 lines (52 loc) · 3.9 KB

overview.md

File metadata and controls

60 lines (52 loc) · 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.