1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107

infra / orchestrator / BUILD.gn [blame]

# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/args.gni")
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",
    ":process_perf_results_py",
    ":standard_gtest_merge_py",
    ":standard_isolated_script_merge_py",
  ]

  if (is_android) {
    data_deps += [ "//build/android:test_result_presentations_py" ]
  }

  data = [
    # Various merge/collect scripts will likely need a venv specified in
    # the root vpython spec files.
    "//.vpython3",

    # Used if the orchestrator needs to run recipe_module.chromium.get_version()
    # to get the Chrome milestone being tested.
    "//chrome/VERSION",

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

  # Orchestrator will run this script to curl for the coverage tool, which
  # merges and outputs coverage data
  if (use_clang_coverage) {
    data += [ "//tools/clang/scripts/update.py" ]
  }

  if (use_jacoco_coverage) {
    data += [ "//third_party/jacoco/cipd/lib/jacococli.jar" ]
    data_deps += [ "//third_party/jdk:java_data" ]
  }

  if (is_skylab) {
    data += [
      "//third_party/chromite/",
      "//chromeos/CHROMEOS_LKGM",
    ]
  }

  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"
}

python_library("process_perf_results_py") {
  pydeps_file = "//tools/perf/process_perf_results.pydeps"

  data = [
    # Telemetry fails if catapult's vendored libs aren't present on the
    # filesystem. But since process_perf_results.py doesn't ever import any of
    # them, build/print_python_deps.py doesn't detect them. So to appease
    # telemetry, just add the needed dirs directly.
    "//third_party/catapult/telemetry/third_party/",
    "//third_party/catapult/third_party/polymer/",
    "//third_party/catapult/third_party/six/",
    "//third_party/catapult/third_party/vinn/",
    "//third_party/catapult/tracing/bin/add_reserved_diagnostics",
    "//third_party/catapult/tracing/third_party/",
    "//third_party/catapult/tracing/tracing/",

    # This file is read at script run-time.
    "//tools/perf/core/perf_dashboard_machine_group_mapping.json",
  ]
}