"""subweb deployment package. Always prefix a task with the appropriate setup. Examples: $ fab setups.stage deploy $ fab setups.production version $ fab setups.prod load_fixture:fixtures/flatpages.json """ from fabric.api import * from fabfile import helpers from fabfile import setups @task def deploy(): """Deploys the project. Updates the sources, links the appropriate settings, collects the static files and synchronizes/migrates the database. Loading fixtures needs to be done manually. """ helpers.update_project() helpers.install_requirements() helpers.link_settings() helpers.collect_static() helpers.manage('supervisor stop gunicorn') helpers.syncdb() helpers.migrate() helpers.manage('supervisor start gunicorn')