Git Product home page Git Product logo

evan's Introduction

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

Released under the MIT license, see LICENSE for details.

evan's People

Contributors

dirk avatar

Watchers

 avatar  avatar  avatar

Forkers

gophersgang

evan's Issues

Fix GitHub commit-ahead comparison

Right now it only does a simplistic how-many-commits-ahead comparison. It should also check the files changed. This is because a branch may be ahead of another branch in terms of commit numbers (because of merge commits) but not ahead in terms of files (because merge commit(s)/empty commits would not have changed any files).

Support for GitHub merge event web-hook

Make it easy to set up an HTTP handler to receive merge events from GitHub and kick off deployments in response. This is to make it possible to do an auto-deployments when there is a merge into/push to master.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.