Scripted application deployment automation
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
common
config
context
heroku
http_handlers
phases
preconditions
slack
stores
.gitignore
.travis.yml
LICENSE
README.md
evan.go
glide.lock
glide.yaml

README.md

Evan

Evan is like heaven for your deployment automation.

Structure

  • config: You set up Evan by configuring your applications and how they should be deployed.
    • Application:
      • Repository: Where the source code of the application is located.
      • Environments: List of strings describing different places the application can be deployed: "production", "staging", etc.
      • DeployEnvironment: Function that returns a strategy for deploying the application to a given environment.
    • Strategy: Strategies determine how the application should be deployed. A strategy consists preconditions and phases. It executes all the preconditions first; if they all pass then it executes the phases. Preconditions are repeatable whereas phases execute the actual deployment.
  • preconditions: Built-in preconditions.
  • phases: Built-in phases.
  • stores: Persist the state of deployments during and after their execution. This allows the system to report the progress of deployments and keep track of deployments after they go out.
  • http_handlers: Provides common handlers conforming to the Go net/http.Handler interface for receiving various events and commands.
    • rest_json: These handlers make it easy to build a REST'ish JSON API for creating, managing, and querying deployments.
  • common: Shared protocols for communicating information and functionality between the subsystems that make up Evan.
  • slack: Utility for sending messages via Slack webhooks.

License

Built by Dirk Gadsden at Everlane and Brandless. Released under the MIT license, see LICENSE for details.