Code Monkey home page Code Monkey logo

maglev's Introduction

๐Ÿš„ Maglev

Safe, smooth, reliable, magnet-powered deployments.

๐Ÿš„ Maglev is an automated tool for regularly deploying code. It looks at the most recent green source branch builds in Codeship, compares them to the current slug on Heroku, and finds the best available code to deploy. After the deploy is started, it will post a message in Slack with a list of all of the commits it is deploying.

Emergency Brake

If you'd like to stop the deploy train from running, you can set the TRAIN_IS_RUNNING environment variable to anything other than true. Any other value, and the train will not run.

Contributing

Installation

To get started contributing:

brew install yarn
yarn install
yarn test
yarn dev:run

Environment

The following environment variables are expected to be set for yarn dev:run to work:

  • For CircleCI: CIRCLECI_TOKEN
  • For Codeship: CODESHIP_USERNAME, CODESHIP_PASSWORD, CODESHIP_ORGANIZATION_ID, CODESHIP_PROJECT_ID
  • For Heroku: HEROKU_ACCESS_TOKEN, HEROKU_APP_NAME
  • For Github: GITHUB_OWNER, GITHUB_REPO, GITHUB_ACCESS_TOKEN
  • For Slack: SLACK_API_TOKEN
  • Other: SOURCE_BRANCH, TRAIN_IS_RUNNING

Technologies

๐Ÿš„ Maglev is built using Typescript and fp-ts.

Typescript

TypeScript in 5 Minutes is a great introduction to Typescript and the Handbook, starting with Basic Types provides a great reference.

fp-ts

fp-ts is a fantastic library for using a more functional approach in Typescript:

The goal of fp-ts is to empower developers to write pure FP apps and libraries built atop higher order abstractions. It includes the most popular data types, type classes, and abstractions from languages like Haskell, PureScript, and Scala.

[via Core Concepts]

A great place to get started with fp-ts is in Dave Taylor's Exploring fp-ts series:

Another excellent series to build good understanding is Giulio Canti's Getting Started with fp-ts, which begins with a look at Eq. Giulio is the author of fp-ts and does a great job of explaining what is going on under the hood.

Third-Party APIs

Currently, ๐Ÿš„ Maglev uses the following services to coordinate deploys:

  • Codeship, for identifying which commits have successfully passed CI;
  • Github, for doing comparisons across commits and grabbing the code to be deployed;
  • Heroku, as the destination for all deploys; and
  • Slack, as the destination for all notifications.

maglev's People

Contributors

brianabaker avatar dependabot[bot] avatar pfstein avatar vanev avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.