diff options
author | usta <usta@google.com> | 2023-06-28 00:24:34 -0400 |
---|---|---|
committer | usta <usta@google.com> | 2023-06-30 13:13:49 -0400 |
commit | 4b8c783f8ac2a4e8add87df19ae2e9c97dfa9c43 (patch) | |
tree | 404a4b5c13745ae7a1e18e6656261f3b2e24fb27 /scripts/incremental_build | |
parent | 5b9622e059303b7b62a54c7fd7e9890bfbe6580c (diff) | |
download | bazel-4b8c783f8ac2a4e8add87df19ae2e9c97dfa9c43.tar.gz |
avoid cquery calls during perf tests
calling cquery with differnt options (e.g. --host_platform) invalidates its cache and thus affects incrementality of the builds that we are supposed to test
Bug: 289064404
Test: `./incremental_test.sh -c "change Android.bp"` and observe lower time for the cquery phase
Change-Id: I754991472a554c594efb3a21149739a3843fddad
Diffstat (limited to 'scripts/incremental_build')
-rw-r--r-- | scripts/incremental_build/incremental_build.py | 24 | ||||
-rw-r--r-- | scripts/incremental_build/util.py | 10 |
2 files changed, 5 insertions, 29 deletions
diff --git a/scripts/incremental_build/incremental_build.py b/scripts/incremental_build/incremental_build.py index 8d5d3313..1f39b58e 100644 --- a/scripts/incremental_build/incremental_build.py +++ b/scripts/incremental_build/incremental_build.py @@ -116,29 +116,6 @@ def _build_file_size(target_product: str) -> int: return os.path.getsize(build_file) if build_file.exists() else 0 -@skip_for(BuildType.SOONG_ONLY) -def _query_buildroot_deps() -> int: - cmd = f'{util.get_top_dir().joinpath("build/bazel/bin/bazel")} ' \ - f'--output_base={util.get_out_dir().joinpath("bazel/output")} ' \ - 'cquery "deps(@soong_injection//mixed_builds:buildroot)" ' \ - '| wc -l' - env = { - 'HOME': util.get_out_dir().joinpath('bazel/bazelhome'), - 'BUILD_DIR': util.get_out_dir().joinpath('soong'), - 'OUT_DIR': util.get_out_dir(), - 'BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN': '1' - } - p = subprocess.run(cmd, check=False, - cwd=util.get_out_dir().joinpath('soong/workspace'), - env=env, shell=True, capture_output=True) - if p.returncode: - if len(p.stderr): - logging.error('bazel cquery errors: %s', p.stderr) - return -1 - - return int(p.stdout) - - def _pretty_env(env: Mapping[str, str]) -> str: env_copy = [f'{k}={v}' for (k, v) in env.items()] env_copy.sort() @@ -173,7 +150,6 @@ def _build(build_type: BuildType, run_dir: Path) -> BuildInfo: return BuildInfo( actions=action_count_delta, - build_root_deps=_query_buildroot_deps(), build_type=build_type, build_result=BuildResult.FAILED if p.returncode else BuildResult.SUCCESS, build_ninja_hash=_build_file_sha(target_product), diff --git a/scripts/incremental_build/util.py b/scripts/incremental_build/util.py index 698344c7..abebb2a9 100644 --- a/scripts/incremental_build/util.py +++ b/scripts/incremental_build/util.py @@ -42,10 +42,11 @@ BUILD_INFO_JSON: Final[str] = 'build_info.json' @functools.cache def _is_important(column) -> bool: patterns = { - 'actions', r'build_ninja_(?:hash|size)', 'build_root_deps', 'build_type', - 'cquery_out_size', 'description', r'mixed\.enabled', 'log', 'time', - 'targets', 'soong/soong', r'kati/kati (?:build|package)', - 'bp2build', 'symlink_forest', r'soong_build/\*(?:\.bazel)?', 'ninja/ninja' + 'actions', r'build_ninja_(?:hash|size)', 'build_type', + 'cquery_out_size', 'description', 'log', r'mixed\.enabled', 'targets', + # the following are time-based values + 'bp2build', r'kati/kati (?:build|package)', 'ninja/ninja', 'soong/soong', + r'soong_build/\*(?:\.bazel)?', 'symlink_forest', 'time' } for pattern in patterns: if re.fullmatch(pattern, column): @@ -100,7 +101,6 @@ class BuildInfo: product: str time: datetime.timedelta actions: int - build_root_deps: int cquery_out_size: int = None description: str = '<unset>' warmup: bool = False |