Guest User

Untitled

a guest
Jul 17th, 2018
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. from __future__ import with_statement
  2.  
  3. from fabric.api import *
  4. from fabric.contrib import django
  5.  
  6. env.hosts = ["user@example.com"]
  7.  
  8. REMOTE_PROJECT_ROOT = '/path/to/project/root/'
  9.  
  10. def _run_django_prod(command):
  11. """ Run a django command remotely using production settings """
  12. return run("PYTHONPATH=$PYTHONPATH:src bin/django-admin.py %s --settings=myapp.production" % command)
  13.  
  14.  
  15. def deploy():
  16. # will fail if files are changed and not checked in
  17. # (it still wouldn't detect untracked files!)
  18. local("git diff-index --quiet HEAD")
  19.  
  20. # archive HEAD
  21. local("git archive --format=tar HEAD | gzip > /tmp/papu.tgz")
  22.  
  23. # send to server
  24. put('/tmp/papu.tgz', '/tmp/')
  25.  
  26. with cd(REMOTE_PROJECT_ROOT):
  27. # unpack
  28. run('tar xzf /tmp/papu.tgz')
  29.  
  30. _run_django_prod('syncdb')
  31. _run_django_prod('migrate')
  32. _run_django_prod('collectstatic --noinput')
  33.  
  34. # restart the server - will fail if server wasn't running
  35. with settings(warn_only=True):
  36. run('pkill python')
Add Comment
Please, Sign In to add comment