aboutsummaryrefslogtreecommitdiff
path: root/scripts/incremental_build
diff options
context:
space:
mode:
authorusta <usta@google.com>2023-06-28 00:24:34 -0400
committerusta <usta@google.com>2023-06-30 13:13:49 -0400
commit4b8c783f8ac2a4e8add87df19ae2e9c97dfa9c43 (patch)
tree404a4b5c13745ae7a1e18e6656261f3b2e24fb27 /scripts/incremental_build
parent5b9622e059303b7b62a54c7fd7e9890bfbe6580c (diff)
downloadbazel-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.py24
-rw-r--r--scripts/incremental_build/util.py10
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