Browse Source

[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>
Mohamed Heikal 5 months ago
parent
commit
678f73bd0e
2 changed files with 11 additions and 6 deletions
  1. 6 4
      android_build_server_helper.py
  2. 5 2
      autoninja.py

+ 6 - 4
android_build_server_helper.py

@@ -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.

+ 5 - 2
autoninja.py

@@ -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)