atmos.org


You found Corey, a software engineer in NYC.

Contact

Email

Open Source

Projects

Inactive on

GitHub

Twitter

Facebook

Instagram

GitHub Auto-Deployment


GitHub Auto-Deployment is a workflow service for software teams deploying applications. It uses simple interactions around git usage to decide when code changes to your application should be deployed.

GitHub Flow

Behaviors

There’s two different ways to trigger deployments, by pushing and by commit status.

Deploy on Push

Upon receiving a push to the default branch, GitHub emits a deployment event for that sha. This is great for workflows where you push to GitHub and see changes on heroku in 30-60 seconds.

Example:

Push to Deploy

Deploy on Commit Status

Upon receiving a commit status to the default branch, GitHub emits a deployment event if the commit status is successful.

Example:

CI Based Deploy

Setup

Auto-Deployment is available as a github service and is configured in your repository’s admin settings under the Webhooks & Services section.

GitHub will handle creating Deployments via the API, but you will still need to configure a system that does the actual deployment for you.

Supported Deployment Systems

Right now there’s only a few easy ways to deploy. You can use heaven with webhooks, the HerokuBeta GitHub service, or the AWS OpsWorks GitHub service.

Configuration

Attributes Description
github_token A GitHub personal oauth token with repo_deployment scope
environments A comma delimited list of environments to deploy to automatically.
push_on_status When set to 1 deployments are only created on successful commit statuses.
status_contexts A comma delimimted list of commit status context names to verify against.Unimplemented

Chat Configuration

The easiest way to configure auto-deployment is via Hubot. You can configure things on a per-repo basis via hubot with the hubot-auto-deploy script. This saves you from having to do things like look up a GitHub API token or remember the exact syntax.

TODO

Branch based continuous deployment

Desired, but currently unimplemented

Example: