Git Product home page Git Product logo

shipper's Introduction

Jack the Shipper

Shipper is a continuous deployment tool that leverages GitHub's Deployments API to allow secure asynchronous deployments.

How does it work?

A shipper daemon polls the Github Deployments API for new deployments on a given environment. When a new deployment is found it follows these steps:

  • Creates a "pending" Github Deployment Status
  • Checks out the code into a "versioned" folder
  • Runs the "Before Symlink" steps
  • Creates a symbolic link called current to the new check out
  • Runs the "After Symlink" steps
  • Creates a "success" Github Deployment Status

Here is a diagram of how the whole system might look like: diagram

Configuration

A configuration file is required to set up shipper. It uses the YAML format and it should contain the following parameters:

  • git_url: The url of the Github repository
  • environment: The environment the daemon should check for new deployments
  • app_path: Path of the application
  • server_id: A unique ID for the server
  • before_symlink: Array of commands to run before the symlink
  • after_symlink: Array of commands to run after the symlink
  • shared_files: A list of shared files to be symlinked
  • keep_revisions: Revisions to keep when getting ones
  • interval: Interval between API checks in seconds

A GH_KEY environment variable with a Github Oauth Token is currently required to run shipper. This requirement will be removed for the monitor.

Commands

Setup

Setup the folder structure within the app_path. It creates a releases and a shared folder.

shipper setup -c shipper.yml

New

Crease a new deployment in the Github API. A ref is required.

shipper new -c shipper.yml --ref master

Run

Run the process that continuously monitors for new deployments.

shipper run -c shipper.yml

Deploy

Run a manual deployment, if it exists.

shipper deploy -c shipper.yml

shipper's People

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.