Skip to content

Commit

Permalink
Write orchestrator runtime deps with gn
Browse files Browse the repository at this point in the history
These runtime deps encompass the deps necessary to for triggering
swarming tasks, merging test results, and running code coverage. More
will be added later for other platforms' code coverage.

runtime deps are written to the "orchestrator_runtime_deps" dir.

For python scripts, the python_library template is called via a for
loop and the resulting targets are grouped to be written to the dir.

For llvm stuff, knowing which ones to add was based on trial and error
of running the code coverage. Not sure if there's a better way to
include llvm.

Bug: 1287228
Change-Id: I67b95d42751f39bf1d3cfed232b4cf1b6f9020fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3457503
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Weizhong Xia <weizhong@google.com>
Commit-Queue: Stephanie Kim <kimstephanie@google.com>
Reviewed-by: Erik Staab <estaab@chromium.org>
Cr-Commit-Position: refs/heads/main@{#984058}
  • Loading branch information
Stephanie Kim authored and Chromium LUCI CQ committed Mar 22, 2022
1 parent ab924fb commit c94072c
Show file tree
Hide file tree
Showing 10 changed files with 102 additions and 0 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ group("gn_all") {
"//codelabs",
"//components:components_unittests",
"//components/gwp_asan:gwp_asan_unittests",
"//infra/orchestrator:orchestrator_all",
"//net:net_unittests",
"//services:services_unittests",
"//services/service_manager/public/cpp",
Expand Down
6 changes: 6 additions & 0 deletions PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -1126,11 +1126,17 @@ class BanRule:
'net/tools/testserver/testserver.pydeps',
'testing/scripts/run_android_wpt.pydeps',
'testing/scripts/run_isolated_script_test.pydeps',
'testing/merge_scripts/standard_isolated_script_merge.pydeps',
'testing/merge_scripts/standard_gtest_merge.pydeps',
'testing/merge_scripts/code_coverage/merge_results.pydeps',
'testing/merge_scripts/code_coverage/merge_steps.pydeps',
'third_party/android_platform/development/scripts/stack.pydeps',
'third_party/blink/renderer/bindings/scripts/build_web_idl_database.pydeps',
'third_party/blink/renderer/bindings/scripts/collect_idl_files.pydeps',
'third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps',
'third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps',
'third_party/blink/tools/blinkpy/web_tests/merge_results.pydeps',
'third_party/blink/tools/merge_web_test_results.pydeps',
'tools/binary_size/sizes.pydeps',
'tools/binary_size/supersize.pydeps',
]
Expand Down
61 changes: 61 additions & 0 deletions infra/orchestrator/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Copyright 2022 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/coverage/coverage.gni")
import("//build/config/python.gni")

group("orchestrator_all") {
data_deps = [
# blink merge scripts the Orchestrator needs to merge blink test results
":blink_merge_web_test_results_py",
":blinkpy_merge_results_py",

# merge scripts the Orchestrator needs to merge test results and coverage
# profile information
":code_coverage_merge_results_py",
":code_coverage_merge_steps_py",
":standard_gtest_merge_py",
":standard_isolated_script_merge_py",
]

# Test specs the Orchestrator needs to trigger swarming tests
data = [ "//testing/buildbot/*.json" ]

# coverage tool for the Orchestrator to merge and output coverage data
if (use_clang_coverage) {
data += [
"//third_party/llvm-build/Release+Asserts/bin/llvm-cov",
"//third_party/llvm-build/Release+Asserts/bin/llvm-profdata",
"//third_party/llvm-build/Release+Asserts/lib",
]
}
write_runtime_deps =
"$root_out_dir/orchestrator_all.runtime_deps"
}

# blink merge scripts pydeps files for the Orchestrator
python_library("blink_merge_web_test_results_py") {
pydeps_file = "//third_party/blink/tools/merge_web_test_results.pydeps"
}

python_library("blinkpy_merge_results_py") {
pydeps_file =
"//third_party/blink/tools/blinkpy/web_tests/merge_results.pydeps"
}

# pydeps files for merge scripts needed by the Orchestrator
python_library("standard_isolated_script_merge_py") {
pydeps_file = "//testing/merge_scripts/standard_isolated_script_merge.pydeps"
}

python_library("standard_gtest_merge_py") {
pydeps_file = "//testing/merge_scripts/standard_gtest_merge.pydeps"
}

python_library("code_coverage_merge_results_py") {
pydeps_file = "//testing/merge_scripts/code_coverage/merge_results.pydeps"
}

python_library("code_coverage_merge_steps_py") {
pydeps_file = "//testing/merge_scripts/code_coverage/merge_steps.pydeps"
}
6 changes: 6 additions & 0 deletions infra/orchestrator/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
bpastene@chromium.org
estaab@chromium.org
gatong@chromium.org
gbeaty@chromium.org
kimstephanie@google.com
martiniss@chromium.org
4 changes: 4 additions & 0 deletions testing/merge_scripts/code_coverage/merge_results.pydeps
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Generated by running:
# build/print_python_deps.py --root testing/merge_scripts/code_coverage --output testing/merge_scripts/code_coverage/merge_results.pydeps testing/merge_scripts/code_coverage/merge_results.py
merge_lib.py
merge_results.py
4 changes: 4 additions & 0 deletions testing/merge_scripts/code_coverage/merge_steps.pydeps
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Generated by running:
# build/print_python_deps.py --root testing/merge_scripts/code_coverage --output testing/merge_scripts/code_coverage/merge_steps.pydeps testing/merge_scripts/code_coverage/merge_steps.py
merge_lib.py
merge_steps.py
4 changes: 4 additions & 0 deletions testing/merge_scripts/standard_gtest_merge.pydeps
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Generated by running:
# build/print_python_deps.py --root testing/merge_scripts --output testing/merge_scripts/standard_gtest_merge.pydeps testing/merge_scripts/standard_gtest_merge.py
merge_api.py
standard_gtest_merge.py
5 changes: 5 additions & 0 deletions testing/merge_scripts/standard_isolated_script_merge.pydeps
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Generated by running:
# build/print_python_deps.py --root testing/merge_scripts --output testing/merge_scripts/standard_isolated_script_merge.pydeps testing/merge_scripts/standard_isolated_script_merge.py
merge_api.py
results_merger.py
standard_isolated_script_merge.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Generated by running:
# build/print_python_deps.py --root third_party/blink/tools/blinkpy/web_tests --output third_party/blink/tools/blinkpy/web_tests/merge_results.pydeps third_party/blink/tools/blinkpy/web_tests/merge_results.py
../__init__.py
../common/__init__.py
../common/system/__init__.py
../common/system/filesystem.py
../common/system/log_utils.py
merge_results.py
3 changes: 3 additions & 0 deletions third_party/blink/tools/merge_web_test_results.pydeps
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Generated by running:
# build/print_python_deps.py --root third_party/blink/tools --output third_party/blink/tools/merge_web_test_results.pydeps third_party/blink/tools/merge_web_test_results.py
merge_web_test_results.py

0 comments on commit c94072c

Please sign in to comment.