[autoninja] Pass the output directory to the build server

When registering the build with the build server, pass in the output
directory.

Change-Id: Ie6ed0bf5d73926fb163085067aafcd350063ee5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6249305
Auto-Submit: Mohamed Heikal <mheikal@chromium.org>
Reviewed-by: Philipp Wollermann <philwo@google.com>
Commit-Queue: Mohamed Heikal <mheikal@chromium.org>
changes/05/6249305/5
Mohamed Heikal 2 days ago committed by LUCI CQ
parent deb5575fbd
commit 678f73bd0e

@ -13,10 +13,12 @@ import gclient_paths
# Keeps track of whether our SIGINT handler was called. # Keeps track of whether our SIGINT handler was called.
_is_canceled = False _is_canceled = False
def _register_build_id(local_dev_server_path, build_id):
def _register_build_id(local_dev_server_path, build_id, out_dir):
subprocess.run([ subprocess.run([
local_dev_server_path, '--register-build-id', build_id, '--builder-pid', local_dev_server_path, '--register-build-id', build_id, '--builder-pid',
str(os.getpid()) str(os.getpid()), '--output-directory',
os.path.abspath(out_dir)
]) ])
@ -58,14 +60,14 @@ def _set_tty_env():
@contextlib.contextmanager @contextlib.contextmanager
def build_server_context(build_id, use_android_build_server=False): def build_server_context(build_id, out_dir, use_android_build_server=False):
if not use_android_build_server or not _set_tty_env(): if not use_android_build_server or not _set_tty_env():
yield yield
return return
server_path = _get_server_path() server_path = _get_server_path()
_start_server(server_path) _start_server(server_path)
# Tell the build server about us. # Tell the build server about us.
_register_build_id(server_path, build_id) _register_build_id(server_path, build_id, out_dir)
_set_signal_handler(server_path, build_id) _set_signal_handler(server_path, build_id)
yield yield
# No need to print status if we CTRL+Ced out. # No need to print status if we CTRL+Ced out.

@ -371,7 +371,9 @@ def _main_inner(input_args, build_id, should_collect_logs=False):
# Build ID consistently used in other tools. e.g. Reclient, ninjalog. # Build ID consistently used in other tools. e.g. Reclient, ninjalog.
os.environ.setdefault("SISO_BUILD_ID", build_id) os.environ.setdefault("SISO_BUILD_ID", build_id)
with android_build_server_helper.build_server_context( with android_build_server_helper.build_server_context(
build_id, use_android_build_server=use_android_build_server): build_id,
output_dir,
use_android_build_server=use_android_build_server):
if use_remoteexec: if use_remoteexec:
if use_reclient and not t_specified: if use_reclient and not t_specified:
return reclient_helper.run_siso( return reclient_helper.run_siso(
@ -483,7 +485,8 @@ def _main_inner(input_args, build_id, should_collect_logs=False):
_print_cmd(ninja_args) _print_cmd(ninja_args)
with android_build_server_helper.build_server_context( with android_build_server_helper.build_server_context(
build_id, use_android_build_server=use_android_build_server): build_id, output_dir,
use_android_build_server=use_android_build_server):
if use_reclient and not t_specified: if use_reclient and not t_specified:
return reclient_helper.run_ninja(ninja_args, should_collect_logs) return reclient_helper.run_ninja(ninja_args, should_collect_logs)
return ninja.main(ninja_args) return ninja.main(ninja_args)

Loading…
Cancel
Save