Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple system for repeatable deploys. Language-agnostic, easy to use yet extensible, and above all, repeatable.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rst
Octocat-spinner-32 __init__.py
Octocat-spinner-32 api_complex.py
Octocat-spinner-32 api_simple.py
Octocat-spinner-32 deployable.py
README.rst

deployable

A simple system for repeatable deploys.

Why?

There are a number of deployment systems out there (such as Capistrano, zc.buildout, pip requirements, etc.) but most are very complicated or are language-specific. deployable aims to be language-agnostic, easy to use, repeatable, flexible and fault-tolerant.

deployable is ideal for setting up a single machine. Should you need deployment on multiple machines, you might want to consider using deployable with Fabric.

Goals

  • Language-agnostic
  • Repeatable
  • Easy to use
  • Easy to extend
  • Work with many major version control systems
  • Allow for cached deployment (pull sources to a single machine then redistribute to other servers)

Requirements

  • Requires Python 2.4+ w/ no other dependancies.
  • No install required, just include the deployable.py file along with your source code.
  • Only test on Unix systems, though it may work on Windows. (Reports/patches accepted!)

Usage

Simply create a Python file of with the name of your choice and fill it with:

from deployable import *

install_list = [
    Shell(command='mkdir foo'),
    Tarball(url='http://pypi.python.org/packages/source/W/Whoosh/Whoosh-0.3.0b24.zip'),
    Git(url='git://github.com/toastdriven/django-haystack.git'),
    Svn(url='http://code.djangoproject.com/svn/django/trunk/django'),
    GitSvn(url='http://pysolr.googlecode.com/svn/trunk/'),
    Hg(url='http://bitbucket.org/ubernostrum/django-profiles/'),
]

deploy(install_list)

Then run the file (i.e. python deploy_me_please.py). You'll get a log of what's going on. For advanced usage, see the api_complex.py sample file included with this distribution.

Supported

Currently supported commands are:

  • shell
  • tarball
  • Git
  • Mercurial
  • Subversion
  • git-svn
Something went wrong with that request. Please try again.