Skip to content

Commit

Permalink
Bazel rules for Python grpcio_health_checking
Browse files Browse the repository at this point in the history
Add Bazel rules for building and testing grpcio_health_checking.

An unofficial fork for rules_protobuf is used for now as it incorporates
a change (grpc#196 by duduko on the upstream repo pubref/rules_protobuf)
which allows the protoc compiler to compile generated protos too. This
was not merged because the change was failing for golang, but works as
expected for Python.

This is needed because grpcio_health_checking fetches it's proto file
from a different directory (previously achived through setup.py) and
thus needs to be moved to the required location within bazel-genfiles
using a genrule.
  • Loading branch information
ghostwriternr committed Oct 9, 2018
1 parent 912b8ab commit 873e075
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 2 deletions.
5 changes: 3 additions & 2 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@ pip_import(
load("@grpc_python_dependencies//:requirements.bzl", "pip_install")
pip_install()

# NOTE(https://github.com/pubref/rules_protobuf/pull/196): Switch to upstream repo after this gets merged.
git_repository(
name="org_pubref_rules_protobuf",
remote="https://github.com/pubref/rules_protobuf",
tag="v0.8.2",
remote="https://github.com/ghostwriternr/rules_protobuf",
tag="v0.8.2.1-alpha",
)

load("@org_pubref_rules_protobuf//python:rules.bzl", "py_proto_repositories")
Expand Down
8 changes: 8 additions & 0 deletions src/proto/grpc/health/v1/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,11 @@ grpc_proto_library(
name = "health_proto",
srcs = ["health.proto"],
)

filegroup(
name = "health_proto_file",
srcs = [
"health.proto",
],
)

33 changes: 33 additions & 0 deletions src/python/grpcio_health_checking/grpc_health/v1/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
load("@grpc_python_dependencies//:requirements.bzl", "requirement")
load("@org_pubref_rules_protobuf//python:rules.bzl", "py_proto_library")

package(default_visibility = ["//visibility:public"])

genrule(
name = "mv_health_proto",
srcs = [
"//src/proto/grpc/health/v1:health_proto_file",
],
outs = ["health.proto",],
cmd = "cp $< $@",
)

py_proto_library(
name = "py_health_proto",
protos = [":mv_health_proto",],
with_grpc = True,
deps = [
requirement('protobuf'),
],
)

py_library(
name = "grpc_health",
srcs = ["health.py",],
deps = [
":py_health_proto",
"//src/python/grpcio/grpc:grpcio",
],
imports=["../../",],
)

15 changes: 15 additions & 0 deletions src/python/grpcio_tests/tests/health_check/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package(default_visibility = ["//visibility:public"])

py_test(
name = "health_servicer_test",
srcs = ["_health_servicer_test.py"],
main = "_health_servicer_test.py",
size = "small",
deps = [
"//src/python/grpcio/grpc:grpcio",
"//src/python/grpcio_health_checking/grpc_health/v1:grpc_health",
"//src/python/grpcio_tests/tests/unit:test_common",
],
imports = ["../../",],
)

0 comments on commit 873e075

Please sign in to comment.