Skip to content

Commit

Permalink
[Infra] Use Bazel 6 and drop Bazel 4 (Part 2) (grpc#32910)
Browse files Browse the repository at this point in the history
Oops I missed important changes from
grpc#32712. And it turned out that there
are two problems that I couldn't fix at this point.
- Windows Bazel RBE Linker Error: This may be caused by how new Bazel 6
invokes build tools chain but it's not clear. I put workaround to use
Bazel 5 by using `OVERRIDE_BAZEL_VERSION=5.4.1`
- Rule `rules_pods` to fetch CronetFramework from CocoaPod has
incompatibility with sort of built-in apple toolchain.
(bazel-xcode/PodToBUILD#232): I couldn't find
a workaround to fix this so I ended up disabling all tests depending
this target.
  • Loading branch information
veblush authored Apr 21, 2023
1 parent 63ae99d commit 3bd6c38
Show file tree
Hide file tree
Showing 20 changed files with 171 additions and 175 deletions.
37 changes: 20 additions & 17 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -85,29 +85,32 @@ pip_parse(

http_archive(
name = "build_bazel_rules_swift",
sha256 = "12057b7aa904467284eee640de5e33853e51d8e31aae50b3fb25d2823d51c6b8",
url = "https://github.com/bazelbuild/rules_swift/releases/download/1.0.0/rules_swift.1.0.0.tar.gz",
)

http_archive(
name = "rules_pods",
urls = ["https://github.com/pinterest/PodToBUILD/releases/download/4.1.0-412495/PodToBUILD.zip"],
sha256 = "bf2861de6bf75115288468f340b0c4609cc99cc1ccc7668f0f71adfd853eedb3",
url = "https://github.com/bazelbuild/rules_swift/releases/download/1.7.1/rules_swift.1.7.1.tar.gz",
)

load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
load(
"@rules_pods//BazelExtensions:workspace.bzl",
"new_pod_repository",
)

swift_rules_dependencies()

new_pod_repository(
name = "CronetFramework",
is_dynamic_framework = True,
podspec_url = "https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/2/e/1/CronetFramework/0.0.5/CronetFramework.podspec.json",
url = "https://storage.googleapis.com/grpc-precompiled-binaries/cronet/Cronet.framework-v0.0.5.zip",
)
# TODO: Enable below once https://github.com/bazel-xcode/PodToBUILD/issues/232 is resolved
#
#http_archive(
# name = "rules_pods",
# urls = ["https://github.com/pinterest/PodToBUILD/releases/download/4.1.0-412495/PodToBUILD.zip"],
#)
#
#load(
# "@rules_pods//BazelExtensions:workspace.bzl",
# "new_pod_repository",
#)
#
#new_pod_repository(
# name = "CronetFramework",
# is_dynamic_framework = True,
# podspec_url = "https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/2/e/1/CronetFramework/0.0.5/CronetFramework.podspec.json",
# url = "https://storage.googleapis.com/grpc-precompiled-binaries/cronet/Cronet.framework-v0.0.5.zip",
#)
21 changes: 10 additions & 11 deletions bazel/grpc_deps.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -292,12 +292,11 @@ def grpc_deps():
if "rules_cc" not in native.existing_rules():
http_archive(
name = "rules_cc",
sha256 = "35f2fb4ea0b3e61ad64a369de284e4fbbdcdba71836a5555abb5e194cf119509",
strip_prefix = "rules_cc-624b5d59dfb45672d4239422fa1e3de1822ee110",
sha256 = "3d9e271e2876ba42e114c9b9bc51454e379cbf0ec9ef9d40e2ae4cec61a31b40",
strip_prefix = "rules_cc-0.0.6",
urls = [
#2019-08-15
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
"https://github.com/bazelbuild/rules_cc/archive/624b5d59dfb45672d4239422fa1e3de1822ee110.tar.gz",
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_cc/releases/download/0.0.6/rules_cc-0.0.6.tar.gz",
"https://github.com/bazelbuild/rules_cc/releases/download/0.0.6/rules_cc-0.0.6.tar.gz",
],
)

Expand Down Expand Up @@ -425,20 +424,20 @@ def grpc_deps():
if "build_bazel_rules_apple" not in native.existing_rules():
http_archive(
name = "build_bazel_rules_apple",
sha256 = "77e8bf6fda706f420a55874ae6ee4df0c9d95da6c7838228b26910fc82eea5a2",
sha256 = "f94e6dddf74739ef5cb30f000e13a2a613f6ebfa5e63588305a71fce8a8a9911",
urls = [
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/releases/download/0.32.0/rules_apple.0.32.0.tar.gz",
"https://github.com/bazelbuild/rules_apple/releases/download/0.32.0/rules_apple.0.32.0.tar.gz",
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/releases/download/1.1.3/rules_apple.1.1.3.tar.gz",
"https://github.com/bazelbuild/rules_apple/releases/download/1.1.3/rules_apple.1.1.3.tar.gz",
],
)

if "build_bazel_apple_support" not in native.existing_rules():
http_archive(
name = "build_bazel_apple_support",
sha256 = "76df040ade90836ff5543888d64616e7ba6c3a7b33b916aa3a4b68f342d1b447",
sha256 = "f4fdf5c9b42b92ea12f229b265d74bb8cedb8208ca7a445b383c9f866cf53392",
urls = [
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz",
"https://github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz",
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/1.3.1/apple_support.1.3.1.tar.gz",
"https://github.com/bazelbuild/apple_support/releases/download/1.3.1/apple_support.1.3.1.tar.gz",
],
)

Expand Down
4 changes: 2 additions & 2 deletions bazel/supported_versions.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
6.1.1
5.4.0
6.1.2
5.4.1
24 changes: 6 additions & 18 deletions bazel/update_mirror.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,25 +57,13 @@ function upload {
# upload "github.com/google/boringssl/archive/1c2769383f027befac5b75b6cedd25daf3bf4dcf.tar.gz"

# bazel binaries used by the tools/bazel wrapper script
upload github.com/bazelbuild/bazel/releases/download/1.0.0/bazel-1.0.0-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/1.0.0/bazel-1.0.0-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/1.0.0/bazel-1.0.0-windows-x86_64.exe
upload github.com/bazelbuild/bazel/releases/download/5.4.1/bazel-5.4.1-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/5.4.1/bazel-5.4.1-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/5.4.1/bazel-5.4.1-windows-x86_64.exe

upload github.com/bazelbuild/bazel/releases/download/2.2.0/bazel-2.2.0-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/2.2.0/bazel-2.2.0-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/2.2.0/bazel-2.2.0-windows-x86_64.exe

upload github.com/bazelbuild/bazel/releases/download/3.7.1/bazel-3.7.1-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/3.7.1/bazel-3.7.1-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/3.7.1/bazel-3.7.1-windows-x86_64.exe

upload github.com/bazelbuild/bazel/releases/download/4.2.1/bazel-4.2.1-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/4.2.1/bazel-4.2.1-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/4.2.1/bazel-4.2.1-windows-x86_64.exe

upload github.com/bazelbuild/bazel/releases/download/5.3.0/bazel-5.3.0-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/5.3.0/bazel-5.3.0-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/5.3.0/bazel-5.3.0-windows-x86_64.exe
upload github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-linux-x86_64
upload github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-darwin-x86_64
upload github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-windows-x86_64.exe

# Collect the github archives to mirror from grpc_deps.bzl
grep -o '"https://github.com/[^"]*"' bazel/grpc_deps.bzl | sed 's/^"https:\/\///' | sed 's/"$//' | while read -r line ; do
Expand Down
4 changes: 2 additions & 2 deletions doc/bazel_support.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ recent LTS versions of Bazel. However individual releases may have a broader
compatibility range. The currently supported versions are captured by the
following list:

- [`6.1.1`](https://github.com/bazelbuild/bazel/releases/tag/6.1.1)
- [`5.4.0`](https://github.com/bazelbuild/bazel/releases/tag/5.4.0)
- [`6.1.2`](https://github.com/bazelbuild/bazel/releases/tag/6.1.2)
- [`5.4.1`](https://github.com/bazelbuild/bazel/releases/tag/5.4.1)
23 changes: 12 additions & 11 deletions src/objective-c/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -239,17 +239,18 @@ grpc_objc_library(
],
)

grpc_objc_library(
name = "grpc_objc_client_core_cronet_testing",
srcs = glob(["GRPCClient/private/GRPCCore/GRPCCoreCronet/*.m"]),
hdrs = glob(["GRPCClient/private/GRPCCore/GRPCCoreCronet/*.h"]),
deps = [
":grpc_objc_client_core_internal_testing",
"//:grpc_cronet_hdrs",
"//src/core/ext/transport/cronet:grpc_transport_cronet_client_secure",
"@CronetFramework",
],
)
# TODO: Enable this again once @CronetFramework is working
#grpc_objc_library(
# name = "grpc_objc_client_core_cronet_testing",
# srcs = glob(["GRPCClient/private/GRPCCore/GRPCCoreCronet/*.m"]),
# hdrs = glob(["GRPCClient/private/GRPCCore/GRPCCoreCronet/*.h"]),
# deps = [
# ":grpc_objc_client_core_internal_testing",
# "//:grpc_cronet_hdrs",
# "//src/core/ext/transport/cronet:grpc_transport_cronet_client_secure",
# "@CronetFramework",
# ],
#)

grpc_objc_library(
name = "proto_objc_rpc_internal_testing",
Expand Down
192 changes: 97 additions & 95 deletions src/objective-c/tests/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -171,71 +171,72 @@ grpc_objc_testing_library(
hdrs = ["MacTests/StressTests.h"],
)

grpc_objc_testing_library(
name = "CronetTests-lib",
srcs = [
"ConfigureCronet.m",
] + glob([
"CronetTests/*.m",
"CronetTests/*.mm",
]),
hdrs = [
"ConfigureCronet.h",
],
deps = [
"InteropTests-lib",
"//src/objective-c:grpc_objc_client_core_cronet_testing",
"//test/core/end2end:cq_verifier",
"//test/core/end2end:ssl_test_data",
"//third_party/objective_c/Cronet:cronet_c_for_grpc",
],
)

grpc_objc_testing_library(
name = "CppCronetTests-lib",
srcs = glob([
"CppCronetTests/*.m",
"CppCronetTests/*.mm",
]),
hdrs = glob([
"CppCronetTests/*.h",
]),
deps = [
"//:grpc++_cronet_credentials",
"//src/objective-c:grpc_objc_client_core_cronet_testing",
"//src/proto/grpc/testing:echo_proto",
"//test/core/end2end:ssl_test_data",
],
)

grpc_objc_testing_library(
name = "PerfTests-lib-Posix",
srcs = [
"ConfigureCronet.m",
"PerfTests/PerfTests.m",
"PerfTests/PerfTestsBlockCallbacks.m",
"PerfTests/PerfTestsNoCFStreamSSL.m",
],
hdrs = ["ConfigureCronet.h"] + glob(["PerfTests/*.h"]),
deps = [
"//src/objective-c:grpc_objc_client_core_cronet_testing",
],
)

grpc_objc_testing_library(
name = "PerfTests-lib",
srcs = [
"ConfigureCronet.m",
"PerfTests/PerfTests.m",
"PerfTests/PerfTestsBlockCallbacks.m",
"PerfTests/PerfTestsCFStreamSSL.m",
"PerfTests/PerfTestsCronet.m",
],
hdrs = ["ConfigureCronet.h"] + glob(["PerfTests/*.h"]),
deps = [
"//src/objective-c:grpc_objc_client_core_cronet_testing",
],
)
# TODO: Enable this again once @CronetFramework is working
#grpc_objc_testing_library(
# name = "CronetTests-lib",
# srcs = [
# "ConfigureCronet.m",
# ] + glob([
# "CronetTests/*.m",
# "CronetTests/*.mm",
# ]),
# hdrs = [
# "ConfigureCronet.h",
# ],
# deps = [
# "InteropTests-lib",
# "//src/objective-c:grpc_objc_client_core_cronet_testing",
# "//test/core/end2end:cq_verifier",
# "//test/core/end2end:ssl_test_data",
# "//third_party/objective_c/Cronet:cronet_c_for_grpc",
# ],
#)
#
#grpc_objc_testing_library(
# name = "CppCronetTests-lib",
# srcs = glob([
# "CppCronetTests/*.m",
# "CppCronetTests/*.mm",
# ]),
# hdrs = glob([
# "CppCronetTests/*.h",
# ]),
# deps = [
# "//:grpc++_cronet_credentials",
# "//src/objective-c:grpc_objc_client_core_cronet_testing",
# "//src/proto/grpc/testing:echo_proto",
# "//test/core/end2end:ssl_test_data",
# ],
#)
#
#grpc_objc_testing_library(
# name = "PerfTests-lib-Posix",
# srcs = [
# "ConfigureCronet.m",
# "PerfTests/PerfTests.m",
# "PerfTests/PerfTestsBlockCallbacks.m",
# "PerfTests/PerfTestsNoCFStreamSSL.m",
# ],
# hdrs = ["ConfigureCronet.h"] + glob(["PerfTests/*.h"]),
# deps = [
# "//src/objective-c:grpc_objc_client_core_cronet_testing",
# ],
#)
#
#grpc_objc_testing_library(
# name = "PerfTests-lib",
# srcs = [
# "ConfigureCronet.m",
# "PerfTests/PerfTests.m",
# "PerfTests/PerfTestsBlockCallbacks.m",
# "PerfTests/PerfTestsCFStreamSSL.m",
# "PerfTests/PerfTestsCronet.m",
# ],
# hdrs = ["ConfigureCronet.h"] + glob(["PerfTests/*.h"]),
# deps = [
# "//src/objective-c:grpc_objc_client_core_cronet_testing",
# ],
#)

grpc_objc_testing_library(
name = "UnitTests",
Expand Down Expand Up @@ -271,36 +272,37 @@ grpc_objc_ios_unit_test(
],
)

grpc_objc_ios_unit_test(
name = "CronetTests",
deps = [
"CronetTests-lib",
],
)

grpc_objc_ios_unit_test(
name = "CppCronetTests",
deps = [
"CppCronetTests-lib",
],
)

grpc_objc_ios_unit_test(
name = "PerfTestsPosix",
deps = [
"PerfTests-lib-Posix",
],
)

grpc_objc_ios_unit_test(
name = "PerfTests",
env = {
"GRPC_CFSTREAM_RUN_LOOP": "1",
},
deps = [
"PerfTests-lib",
],
)
# TODO: Enable this again once @CronetFramework is working
# grpc_objc_ios_unit_test(
# name = "CronetTests",
# deps = [
# "CronetTests-lib",
# ],
# )
#
# grpc_objc_ios_unit_test(
# name = "CppCronetTests",
# deps = [
# "CppCronetTests-lib",
# ],
# )
#
# grpc_objc_ios_unit_test(
# name = "PerfTestsPosix",
# deps = [
# "PerfTests-lib-Posix",
# ],
# )
#
# grpc_objc_ios_unit_test(
# name = "PerfTests",
# env = {
# "GRPC_CFSTREAM_RUN_LOOP": "1",
# },
# deps = [
# "PerfTests-lib",
# ],
# )

macos_unit_test(
name = "MacTests",
Expand Down
2 changes: 1 addition & 1 deletion templates/tools/dockerfile/bazel.include
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Bazel installation

# Must be in sync with tools/bazel
ENV BAZEL_VERSION 5.3.0
ENV BAZEL_VERSION 6.1.2

# The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper.
ENV DISABLE_BAZEL_WRAPPER 1
Expand Down
4 changes: 2 additions & 2 deletions templates/tools/dockerfile/oss_fuzz_base.include
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Pinned version of the base image is used to avoid regressions caused
# by rebuilding of this docker image. To see available versions, you can run
# "gcloud container images list-tags gcr.io/oss-fuzz-base/base-builder"
# Image(8a3a7b8072a9) is built on Sep 5, 2022
FROM gcr.io/oss-fuzz-base/base-builder@sha256:8a3a7b8072a93ba737b02e0c0941903f5408b4def6333fdc823b77aede5b2afd
# Image(a4ad7a70fe10) is built on Apr 19, 2023
FROM gcr.io/oss-fuzz-base/base-builder@sha256:a4ad7a70fe10674c880ca8618a564860114a31dcdd6f9896aac89f0b2f86112a

# -------------------------- WARNING --------------------------------------
# If you are making changes to this file, consider changing
Expand Down
Loading

0 comments on commit 3bd6c38

Please sign in to comment.