Giter Site home page Giter Site logo

pusher's Introduction

Pusher - Git-based deployment tool

Note: This is still in development

Set-up

The Pusher configuration is stored in .pusher in the root of the project. It's a YAML file

environments:
  staging: [email protected]:/var/www
  live: [email protected]:/var/www
handlers:
  post-deploy: ./tools/post-deploy
  test-deploy: ./tools/test-deploy

Environments:

Each environment is defined as a git remote. Each environment will be set up as a remote on your local repository, and a branch will be created for that environment.

Handlers:

Each handler is a shell comamnd

Each environment gets a branch

 * Environments: these are defined as git remotes

Setting up an environment

pusher init-environment staging
pusher init-environment live

Usage

Creating a hotfix

# First, commit your fix to the stable branch
git checkout live
git checkout 1a2b3c

# Now run pusher
pusher hotfix
# Pusher will recommend a version and print a change summary for you to use to get approval
# When you have approval, deploy it
pusher deploy live v1.2.3   

Creating a release

# First, merge your changes to the staging branch
git checkout staging
git merge master

# Now run pusher
pusher release
# Pusher will recommend a version and print a change summary for you to use to get approval

# When you have approval, deploy it to staging
pusher deploy staging v1.2.3   

# When it's been tested and approved, deploy it to live
pusher deploy live v1.2.3

Roll back

pusher deploy staging v1.2.1
pusher deploy staging v1.2.2
pusher deploy staging v1.2.3

pusher rollback staging
# Now v1.2.2 is on staging

pusher rollback staging
# Now v1.2.1 is on staging

Show current status

pusher environments
# Lists all the environments, their current versions, and whether they are "dirty" (local uncommitted changes)

pusher versions
# Lists all versions and whether they are on any particular environment

pusher's People

Stargazers

Milan Jelicanin avatar Fred Condo avatar Fr. Mesrop Ash avatar Mateusz U avatar Sam Minnée avatar

Watchers

Sam Minnée avatar James Cloos avatar

Forkers

mateusz

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.