-
Notifications
You must be signed in to change notification settings - Fork 1
/
fabfile.py
32 lines (26 loc) · 1.01 KB
/
fabfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from fabric.context_managers import settings, cd
from fabric.operations import run, sudo
__author__ = 'kenneth'
def deploy(user='www-data', git_hash=None):
source = 'https://github.com/rapidpro/data_api.git'
proc_name = 'api'
path = '/var/www/data_api'
workon_home = '/var/www/.virtualenvs/api/bin/'
print "Starting deployment"
with settings(warn_only=True):
if run("test -d %s" % path).failed:
run("git clone %s %s" % (source, path))
with cd(path):
run("git config core.filemode false")
with cd(path):
run("git stash")
if not git_hash:
run("git pull %s master" % source)
else:
run("git fetch")
run("git checkout %s" % git_hash)
run('%spip install -r requirements.txt' % workon_home)
run('%spython manage.py collectstatic --noinput' % workon_home)
sudo("chown -R %s:%s ." % (user, user))
sudo("chmod -R ug+rwx .")
sudo("supervisorctl restart %s" % proc_name)