mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 21:13:36 +00:00
After this commit, we're tracking two branches: "master" and "prod". Pushed to "prod" deploy to production, while pushes to "master" deploy to the staging server. (imported from commit 6ce429a1d6f606fb6136341dc393d93fd1228a21)
58 lines
1.8 KiB
Python
Executable File
58 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
def check_output(*popenargs, **kwargs):
|
|
if 'stdout' in kwargs:
|
|
raise ValueError('stdout argument not allowed, it will be overridden.')
|
|
process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
|
|
output, unused_err = process.communicate()
|
|
retcode = process.poll()
|
|
if retcode:
|
|
cmd = kwargs.get("args")
|
|
if cmd is None:
|
|
cmd = popenargs[0]
|
|
raise subprocess.CalledProcessError(retcode, cmd, output=output)
|
|
return output
|
|
|
|
subprocess.check_output = check_output
|
|
|
|
# Color codes
|
|
OKBLUE = '\033[94m'
|
|
OKGREEN = '\033[92m'
|
|
WARNING = '\033[93m'
|
|
FAIL = '\033[91m'
|
|
ENDC = '\033[0m'
|
|
|
|
os.chdir("/home/humbug/humbug")
|
|
if len(sys.argv) > 1:
|
|
oldrev = sys.argv[1]
|
|
newrev = sys.argv[2]
|
|
refname = sys.argv[3]
|
|
|
|
subprocess.check_call(["git", "fetch"], stdout=open('/dev/null', 'w'))
|
|
subprocess.check_call(["git", "reset", "--hard", refname], stdout=open('/dev/null', 'w'))
|
|
#subprocess.check_call(["python", "manage.py", "syncdb"], stdout=open('/dev/null', 'w'))
|
|
|
|
# Restart the FastCGI process, which is running in a shell loop in screen.
|
|
# TODO: real daemonization
|
|
for cmd in ('runfcgi', 'runtornado'):
|
|
try:
|
|
subprocess.check_call(["pkill", "-f", "python manage.py " + cmd])
|
|
except subprocess.CalledProcessError:
|
|
print "%sCould not kill %s; is it running?%s" % (WARNING, cmd, ENDC)
|
|
|
|
print OKGREEN + "Updated deployed version of humbug application!" + ENDC
|
|
|
|
if newrev == '0000000000000000000000000000000000000000':
|
|
# 0000000000000000000000000000000000000000 means we're deleting the ref
|
|
commits = ''
|
|
else:
|
|
commits = subprocess.check_output(["git", "log", "%s..%s" % (oldrev, newrev)])
|
|
|
|
if '[schema]' in commits:
|
|
print
|
|
print FAIL + "Schema change detected! Please make the appropriate changes manually." + ENDC
|
|
print
|