Automate deployment of Python application from multiple VCS repositories

Ben Finney ben+python at benfinney.id.au
Tue Apr 7 21:24:45 EDT 2015


Howdy all,

What tools are available to automate deployment of a Python application
comprising many discrete modules, spread across different code bases in
different VCS repositories?

My idea is to have a single definition (itself under VCS control) that
specifies VCS locations and branches, a hierarchy into which all the
modules fit, and a deployment host.

    host foo:
        repo ‘spam-common <URL>’, branch ‘trunk’, at ‘./common/’
        repo ‘beans <URL>’, branch ‘version 6.1’, at ‘./’
        repo ‘sausage <URL>’, branch ‘trunk’, at ‘./third-party/sausage/’

    host bar:
        repo ‘spam-common <URL>’, branch ‘maint’, at ‘./common/’
        repo ‘beans <URL>’, branch ‘version 7.0’, at ‘./’
        repo ‘eggs <URL>’, branch ‘master’, at ‘./third-party/eggs/’
        repo ‘toast <URL>’, branch ‘trunk’, at ‘./third-party/eggs/toast/’
        repo ‘sausage <URL>’, branch ‘version 1.4’, at ‘./third-party/sausage/’

The deployment tool, when told which host specification to use, then
gathers the code by exporting it from its disparate branches, fits it
into the directory hierarchy, and deploys that to the specified host.

The goal is to be able to have multiple host specifications, each of
which needs a different set of code repositories (and often different
branches within those repositories) to be built into the deployed
application.

What frameworks are there to do this for Python code?

-- 
 \       “Know what I hate most? Rhetorical questions.” —Henry N. Camp |
  `\                                                                   |
_o__)                                                                  |
Ben Finney




More information about the Python-list mailing list