Git Product home page Git Product logo

gitploy's Introduction

Gitploy: dead-simple deployment DSL created with git in mind

Why yet another deployment solution?

  • Because Capistrano is bloated
  • Because, no, I don't want to use rake for deployment, thank you
  • Because I'm sick of having to jump through flaming hoops just to tweak the arguments of some stupid command
  • Because I want something bare minimum, git-based, and dead-simple
  • Because I felt like it

Gitploy was created to do dead-simple git-push based deployments. It doesn't use rake, it doesn't require git hooks, it just does the bare minimum. It's so minimal, in fact, that it doesn't even come with its own "recipe" - Gitploy is actually just a DSL to quickly define your own deployment strategy. No hooks, very little behind-the-scenes magic - it just does what you tell it to.

Example config/deploy.rb

require 'gitploy/script'

configure do |c|
  c.path = '/var/www/fooapp'

  stage :staging do
    c.host = 'staging.fooapp.com'
    c.user = 'ninja'
  end

  stage :production do
    c.host = 'fooapp.com'
    c.user = 'deployer'
  end
end

setup do
  remote do
    run "mkdir -p #{config.path}"
    run "cd #{config.path} && git init"
    run "git config --bool receive.denyNonFastForwards false"
    run "git config receive.denyCurrentBranch ignore"
  end
end

deploy do
  push!
  remote do
    run "cd #{config.path}"
    run "git reset --hard"
    run "bundle install --deployment"
    run "touch tmp/restart.txt"
  end
end

Usage

$ gem install gitploy
# create config/deploy.rb
$ gitploy production setup
$ gitploy production

Disclaimer

Gitploy is super alpha - don't use it yet, unless you're just that baller. Are you?

Known issues

  • No tests :(
  • Not enough documentation
  • DSL implementation is pretty dumb and needs refactoring

gitploy's People

Contributors

brentd avatar rspeicher avatar

Stargazers

Josef Pospíšil avatar

Watchers

Josef Pospíšil avatar James Cloos 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.