def stage(op): run = init_run(op) try: _stage_run_proc_env(op, run) _resolve_deps(op, run, for_stage=True) op_util.set_run_staged(run) finally: op_util.clear_run_pending(run) return run
def _run(run, op, quiet, stop_after, extra_env): try: _resolve_deps(op, run) finally: op_util.clear_run_pending(run) op_util.set_run_started(run) op_util.clear_run_marker(run, "STAGED") proc = _op_start_proc(op, run, extra_env) exit_status = _op_wait_for_proc(op, proc, run, quiet, stop_after) _op_finalize_run_attrs(run, exit_status) return exit_status
def stage(op, continue_on_deps_error=False): run = init_run(op) try: _stage_run_proc_env(op, run) _resolve_deps(op, run, for_stage=True, continue_on_error=continue_on_deps_error) op_util.set_run_staged(run) finally: op_util.clear_run_pending(run) return run
def run(op, quiet=False, pidfile=None, stop_after=None, extra_env=None): run = init_run(op) op_util.clear_run_marker(run, "STAGED") try: _resolve_deps(op, run) finally: op_util.clear_run_pending(run) op_util.set_run_started(run) if pidfile: _run_op_in_background(run, op, pidfile, quiet, stop_after, extra_env) return run, 0 else: exit_status = _run_op(run, op, quiet, stop_after, extra_env) return run, exit_status
def _start_in_background(run, op, pidfile, quiet, stop_after, extra_env): import daemonize action = lambda: _run(run, op, quiet, stop_after, extra_env) daemon = daemonize.Daemonize(app="guild_op", action=action, pid=pidfile) # Need to log before starting daemon, otherwise output isn't # visible. if not quiet: log.info("%s started in background as %s (pidfile %s)", run.opref.to_opspec(config.cwd()), run.id, pidfile) try: daemon.start() except SystemExit: op_util.clear_run_pending(run) raise