kopia lustrzana https://github.com/piku/piku
Release worker: provide full env + remove worker. (#39)
* Release worker: provide full env + remove worker. This change improves the release task pseudo-worker. * Provides the full environment (both app env and config env) to the release task. * Uses a non-zero return value to bail early if release phase fails. * Make ENV_ROOT (venv) accessible to release scripts.pull/45/head
rodzic
a9b58917b4
commit
8ca63c60de
13
piku.py
13
piku.py
|
@ -21,7 +21,7 @@ from os.path import abspath, basename, dirname, exists, getmtime, join, realpath
|
|||
from re import sub
|
||||
from shutil import copyfile, rmtree, which
|
||||
from socket import socket, AF_INET, SOCK_STREAM
|
||||
from sys import argv, stdin, stdout, stderr, version_info
|
||||
from sys import argv, stdin, stdout, stderr, version_info, exit
|
||||
from stat import S_IRUSR, S_IWUSR, S_IXUSR
|
||||
from subprocess import call, check_output, Popen, STDOUT, PIPE
|
||||
from tempfile import NamedTemporaryFile
|
||||
|
@ -337,6 +337,7 @@ def do_deploy(app, deltas={}):
|
|||
procfile = join(app_path, 'Procfile')
|
||||
log_path = join(LOG_ROOT, app)
|
||||
env_file = join(APP_ROOT, app, 'ENV')
|
||||
config_file = join(ENV_ROOT, app, 'ENV')
|
||||
|
||||
env = {'GIT_WORK_DIR': app_path}
|
||||
if exists(app_path):
|
||||
|
@ -349,9 +350,15 @@ def do_deploy(app, deltas={}):
|
|||
makedirs(log_path)
|
||||
workers = parse_procfile(procfile)
|
||||
if workers and len(workers):
|
||||
settings = parse_settings(env_file, env)
|
||||
settings = parse_settings(config_file, settings)
|
||||
if "release" in workers:
|
||||
echo("-----> Releasing", fg='green')
|
||||
call(workers["release"], cwd=app_path, env=env, shell=True)
|
||||
settings["ENV_ROOT"] = join(ENV_ROOT, app)
|
||||
retval = call(workers["release"], cwd=app_path, env=settings, shell=True)
|
||||
if retval:
|
||||
exit(retval)
|
||||
workers.pop("release", None)
|
||||
if exists(join(app_path, 'requirements.txt')):
|
||||
echo("-----> Python app detected.", fg='green')
|
||||
deploy_python(app, deltas)
|
||||
|
@ -367,7 +374,6 @@ def do_deploy(app, deltas={}):
|
|||
else:
|
||||
echo("-----> Could not detect runtime!", fg='red')
|
||||
# TODO: detect other runtimes
|
||||
settings = parse_settings(env_file, {})
|
||||
if settings.get("AUTO_RESTART", False):
|
||||
echo("-----> Auto-restarting.", fg='green')
|
||||
do_restart(app)
|
||||
|
@ -473,6 +479,7 @@ def spawn_app(app, deltas={}):
|
|||
app_path = join(APP_ROOT, app)
|
||||
procfile = join(app_path, 'Procfile')
|
||||
workers = parse_procfile(procfile)
|
||||
workers.pop("release", None)
|
||||
ordinals = defaultdict(lambda:1)
|
||||
worker_count = {k:1 for k in workers.keys()}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue