Evan is like heaven for your deployment automation.
- config: You set up Evan by configuring your applications and how they should be deployed.
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.Handlerinterface 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.