Merge pull request #17110 from billfeng327/multipool-config

Bazel multipool config update, removed sentinel file
pull/17337/head
Bill Feng 6 years ago committed by GitHub
commit 8b7323df1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 44
      WORKSPACE
  2. 4
      bazel/grpc_build_system.bzl
  3. 2
      test/core/gpr/BUILD
  4. 2
      test/core/iomgr/BUILD
  5. 2
      test/cpp/qps/BUILD
  6. 51
      third_party/toolchains/BUILD
  7. 1
      third_party/toolchains/RBE_USE_MACHINE_TYPE_LARGE
  8. 31
      third_party/toolchains/machine_size/BUILD
  9. 13
      tools/remote_build/rbe_common.bazelrc

@ -1,45 +1,59 @@
workspace(name="com_github_grpc_grpc") workspace(name = "com_github_grpc_grpc")
load("//bazel:grpc_deps.bzl", "grpc_deps", "grpc_test_only_deps") load("//bazel:grpc_deps.bzl", "grpc_deps", "grpc_test_only_deps")
grpc_deps() grpc_deps()
grpc_test_only_deps() grpc_test_only_deps()
register_execution_platforms(
"//third_party/toolchains:all",
)
register_toolchains(
"//third_party/toolchains:all",
)
new_http_archive( new_http_archive(
name="cython", name = "cython",
sha256="d68138a2381afbdd0876c3cb2a22389043fa01c4badede1228ee073032b07a27", build_file = "//third_party:cython.BUILD",
urls=[ sha256 = "d68138a2381afbdd0876c3cb2a22389043fa01c4badede1228ee073032b07a27",
strip_prefix = "cython-c2b80d87658a8525ce091cbe146cb7eaa29fed5c",
urls = [
"https://github.com/cython/cython/archive/c2b80d87658a8525ce091cbe146cb7eaa29fed5c.tar.gz", "https://github.com/cython/cython/archive/c2b80d87658a8525ce091cbe146cb7eaa29fed5c.tar.gz",
], ],
strip_prefix="cython-c2b80d87658a8525ce091cbe146cb7eaa29fed5c",
build_file="//third_party:cython.BUILD",
) )
load("//third_party/py:python_configure.bzl", "python_configure") load("//third_party/py:python_configure.bzl", "python_configure")
python_configure(name="local_config_python")
python_configure(name = "local_config_python")
git_repository( git_repository(
name="io_bazel_rules_python", name = "io_bazel_rules_python",
remote="https://github.com/bazelbuild/rules_python.git", commit = "8b5d0683a7d878b28fffe464779c8a53659fc645",
commit="8b5d0683a7d878b28fffe464779c8a53659fc645", remote = "https://github.com/bazelbuild/rules_python.git",
) )
load("@io_bazel_rules_python//python:pip.bzl", "pip_repositories", "pip_import") load("@io_bazel_rules_python//python:pip.bzl", "pip_repositories", "pip_import")
pip_repositories() pip_repositories()
pip_import( pip_import(
name="grpc_python_dependencies", name = "grpc_python_dependencies",
requirements="//:requirements.bazel.txt", requirements = "//:requirements.bazel.txt",
) )
load("@grpc_python_dependencies//:requirements.bzl", "pip_install") load("@grpc_python_dependencies//:requirements.bzl", "pip_install")
pip_install() pip_install()
# NOTE(https://github.com/pubref/rules_protobuf/pull/196): Switch to upstream repo after this gets merged. # NOTE(https://github.com/pubref/rules_protobuf/pull/196): Switch to upstream repo after this gets merged.
git_repository( git_repository(
name="org_pubref_rules_protobuf", name = "org_pubref_rules_protobuf",
remote="https://github.com/ghostwriternr/rules_protobuf", remote = "https://github.com/ghostwriternr/rules_protobuf",
tag="v0.8.2.1-alpha", tag = "v0.8.2.1-alpha",
) )
load("@org_pubref_rules_protobuf//python:rules.bzl", "py_proto_repositories") load("@org_pubref_rules_protobuf//python:rules.bzl", "py_proto_repositories")
py_proto_repositories() py_proto_repositories()

@ -131,7 +131,7 @@ def grpc_proto_library(
generate_mocks = generate_mocks, generate_mocks = generate_mocks,
) )
def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++", size = "medium", timeout = "moderate", tags = []): def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++", size = "medium", timeout = "moderate", tags = [], exec_compatible_with = []):
copts = [] copts = []
if language.upper() == "C": if language.upper() == "C":
copts = if_not_windows(["-std=c99"]) copts = if_not_windows(["-std=c99"])
@ -145,6 +145,7 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
"linkopts": if_not_windows(["-pthread"]), "linkopts": if_not_windows(["-pthread"]),
"size": size, "size": size,
"timeout": timeout, "timeout": timeout,
"exec_compatible_with": exec_compatible_with,
} }
if uses_polling: if uses_polling:
native.cc_test(testonly = True, tags = ["manual"], **args) native.cc_test(testonly = True, tags = ["manual"], **args)
@ -162,6 +163,7 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
"$(location %s)" % name, "$(location %s)" % name,
] + args["args"], ] + args["args"],
tags = tags, tags = tags,
exec_compatible_with = exec_compatible_with,
) )
else: else:
native.cc_test(**args) native.cc_test(**args)

@ -81,12 +81,12 @@ grpc_cc_test(
grpc_cc_test( grpc_cc_test(
name = "mpscq_test", name = "mpscq_test",
srcs = ["mpscq_test.cc"], srcs = ["mpscq_test.cc"],
exec_compatible_with = ["//third_party/toolchains/machine_size:large"],
language = "C++", language = "C++",
deps = [ deps = [
"//:gpr", "//:gpr",
"//test/core/util:gpr_test_util", "//test/core/util:gpr_test_util",
], ],
data = ["//third_party/toolchains:RBE_USE_MACHINE_TYPE_LARGE"],
) )
grpc_cc_test( grpc_cc_test(

@ -40,7 +40,7 @@ grpc_cc_library(
grpc_cc_test( grpc_cc_test(
name = "combiner_test", name = "combiner_test",
srcs = ["combiner_test.cc"], srcs = ["combiner_test.cc"],
data = ["//third_party/toolchains:RBE_USE_MACHINE_TYPE_LARGE"], exec_compatible_with = ["//third_party/toolchains/machine_size:large"],
language = "C++", language = "C++",
deps = [ deps = [
"//:gpr", "//:gpr",

@ -170,7 +170,7 @@ grpc_cc_test(
grpc_cc_test( grpc_cc_test(
name = "qps_openloop_test", name = "qps_openloop_test",
srcs = ["qps_openloop_test.cc"], srcs = ["qps_openloop_test.cc"],
data = ["//third_party/toolchains:RBE_USE_MACHINE_TYPE_LARGE"], exec_compatible_with = ["//third_party/toolchains/machine_size:large"],
deps = [ deps = [
":benchmark_config", ":benchmark_config",
":driver_impl", ":driver_impl",

@ -16,37 +16,72 @@ licenses(["notice"]) # Apache v2
package(default_visibility = ["//visibility:public"]) package(default_visibility = ["//visibility:public"])
exports_files(["RBE_USE_MACHINE_TYPE_LARGE",])
# Latest RBE Ubuntu16_04 container # Latest RBE Ubuntu16_04 container
# Update every time when a new container is released. # Update every time when a new container is released.
alias( alias(
name = "rbe_ubuntu1604", name = "rbe_ubuntu1604",
actual = ":rbe_ubuntu1604_r328903", actual = ":rbe_ubuntu1604_r342117",
)
alias(
name = "rbe_ubuntu1604_large",
actual = ":rbe_ubuntu1604_r342117_large",
) )
# RBE Ubuntu16_04 r328903 # RBE Ubuntu16_04 r342117
platform( platform(
name = "rbe_ubuntu1604_r328903", name = "rbe_ubuntu1604_r342117",
constraint_values = [ constraint_values = [
"@bazel_tools//platforms:x86_64", "@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux", "@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang", "@bazel_tools//tools/cpp:clang",
"@com_github_bazelbuild_bazeltoolchains//constraints:xenial", "@com_github_bazelbuild_bazeltoolchains//constraints:xenial",
"@com_github_bazelbuild_bazeltoolchains//constraints/sanitizers:support_msan", "@com_github_bazelbuild_bazeltoolchains//constraints/sanitizers:support_msan",
"//third_party/toolchains/machine_size:standard",
], ],
remote_execution_properties = """ remote_execution_properties = """
properties: { properties: {
name: "container-image" name: "container-image"
value:"docker://gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:59bf0e191a6b5cc1ab62c2224c810681d1326bad5a27b1d36c9f40113e79da7f" value:"docker://gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:f3120a030a19d67626ababdac79cc787e699a1aa924081431285118f87e7b375"
} }
properties: { properties: {
name: "gceMachineType" # Small machines for majority of tests. name: "gceMachineType" # Small machines for majority of tests.
value: "n1-highmem-2" value: "n1-highmem-2"
} }
""",
)
# RBE Ubuntu16_04 r342117 large
platform(
name = "rbe_ubuntu1604_r342117_large",
constraint_values = [
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang",
"@com_github_bazelbuild_bazeltoolchains//constraints:xenial",
"@com_github_bazelbuild_bazeltoolchains//constraints/sanitizers:support_msan",
"//third_party/toolchains/machine_size:large",
],
remote_execution_properties = """
properties: {
name: "container-image"
value:"docker://gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:f3120a030a19d67626ababdac79cc787e699a1aa924081431285118f87e7b375"
}
properties: { properties: {
name: "gceMachineType_LARGE" # Large machines for a small set of resource-consuming tests such as combiner_tests under TSAN. name: "gceMachineType" # Large machines for some resource demanding tests (TSAN).
value: "n1-standard-8" value: "n1-standard-8"
} }
""", """,
)
# This target is auto-generated from release/cpp.tpl and should not be
# modified directly.
toolchain(
name = "cc-toolchain-clang-x86_64-default",
exec_compatible_with = [
],
target_compatible_with = [
],
toolchain = "@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.1/bazel_0.16.1/default:cc-compiler-k8",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
) )

@ -1 +0,0 @@
# This file is a sentinel and is meant to be empty.

@ -0,0 +1,31 @@
# Copyright 2018 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
licenses(["notice"]) # Apache v2
package(default_visibility = ["//visibility:public"])
constraint_setting(name = "machine_size")
constraint_value(
name = "large",
constraint_setting = ":machine_size",
)
constraint_value(
name = "standard",
constraint_setting = ":machine_size",
)
# Add other constraint values as needed (tiny, huge, etc.) in the future.

@ -18,10 +18,10 @@
startup --host_jvm_args=-Dbazel.DigestFunction=SHA256 startup --host_jvm_args=-Dbazel.DigestFunction=SHA256
build --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0/bazel_0.16.1/default:toolchain build --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.1/bazel_0.16.1/default:toolchain
build --extra_toolchains=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0/bazel_0.16.1/cpp:cc-toolchain-clang-x86_64-default build --extra_toolchains=//third_party/toolchains:cc-toolchain-clang-x86_64-default
# Use custom execution platforms defined in third_party/toolchains # Use custom execution platforms defined in third_party/toolchains
build --extra_execution_platforms=//third_party/toolchains:rbe_ubuntu1604 build --extra_execution_platforms=//third_party/toolchains:rbe_ubuntu1604,//third_party/toolchains:rbe_ubuntu1604_large
build --host_platform=//third_party/toolchains:rbe_ubuntu1604 build --host_platform=//third_party/toolchains:rbe_ubuntu1604
build --platforms=//third_party/toolchains:rbe_ubuntu1604 build --platforms=//third_party/toolchains:rbe_ubuntu1604
@ -61,9 +61,9 @@ build:msan --cxxopt=--stdlib=libc++
# setting LD_LIBRARY_PATH is necessary # setting LD_LIBRARY_PATH is necessary
# to avoid "libc++.so.1: cannot open shared object file" # to avoid "libc++.so.1: cannot open shared object file"
build:msan --action_env=LD_LIBRARY_PATH=/usr/local/lib build:msan --action_env=LD_LIBRARY_PATH=/usr/local/lib
build:msan --host_crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0/bazel_0.16.1/default:toolchain build:msan --host_crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.1/bazel_0.16.1/default:toolchain
# override the config-agnostic crosstool_top # override the config-agnostic crosstool_top
build:msan --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0/bazel_0.16.1/msan:toolchain build:msan --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.1/bazel_0.16.1/msan:toolchain
# thread sanitizer: most settings are already in %workspace%/.bazelrc # thread sanitizer: most settings are already in %workspace%/.bazelrc
# we only need a few additional ones that are Foundry specific # we only need a few additional ones that are Foundry specific
@ -71,6 +71,7 @@ build:tsan --copt=-gmlt
# TODO(jtattermusch): use more reasonable test timeout # TODO(jtattermusch): use more reasonable test timeout
build:tsan --test_timeout=3600 build:tsan --test_timeout=3600
build:tsan --test_tag_filters=-qps_json_driver build:tsan --test_tag_filters=-qps_json_driver
build:tsan --extra_execution_platforms=//third_party/toolchains:rbe_ubuntu1604,//third_party/toolchains:rbe_ubuntu1604_large
# undefined behavior sanitizer: most settings are already in %workspace%/.bazelrc # undefined behavior sanitizer: most settings are already in %workspace%/.bazelrc
# we only need a few additional ones that are Foundry specific # we only need a few additional ones that are Foundry specific
@ -78,7 +79,7 @@ build:ubsan --copt=-gmlt
# TODO(jtattermusch): use more reasonable test timeout # TODO(jtattermusch): use more reasonable test timeout
build:ubsan --test_timeout=3600 build:ubsan --test_timeout=3600
# override the config-agnostic crosstool_top # override the config-agnostic crosstool_top
--crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/experimental/ubuntu16_04_clang/1.0/bazel_0.16.1/ubsan:toolchain --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/experimental/ubuntu16_04_clang/1.1/bazel_0.16.1/ubsan:toolchain
# TODO(jtattermusch): remove this once Foundry adds the env to the docker image. # TODO(jtattermusch): remove this once Foundry adds the env to the docker image.
# ubsan needs symbolizer to work properly, otherwise the suppression file doesn't work # ubsan needs symbolizer to work properly, otherwise the suppression file doesn't work
# and we get test failures. # and we get test failures.

Loading…
Cancel
Save