Skip to content

Commit

Permalink
Added Bazel support (grpc-ecosystem#599)
Browse files Browse the repository at this point in the history
  • Loading branch information
f0rmiga authored and achew22 committed Apr 16, 2018
1 parent a120768 commit 56fee81
Show file tree
Hide file tree
Showing 29 changed files with 859 additions and 26 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
_output/
.idea

# Bazel.
bazel-bin
bazel-genfiles
bazel-grpc-gateway
bazel-out
bazel-testlogs
60 changes: 34 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,49 @@
language: go
sudo: false
go:
- 1.9.x
- 1.10.x
- master
- 1.9.x
- 1.10.x
- master
go_import_path: github.com/grpc-ecosystem/grpc-gateway
cache:
directories:
- $HOME/local
- ${TRAVIS_BUILD_DIR}/examples/browser/node_modules
- $HOME/local
- ${TRAVIS_BUILD_DIR}/examples/browser/node_modules
- $HOME/.cache/_grpc_gateway_bazel
before_install:
- ./.travis/install-protoc.sh 3.1.0
- ./.travis/install-swagger-codegen.sh 2.2.2
- nvm install v6.1 && nvm use v6.1 && node --version
- go get github.com/golang/lint/golint
- go get github.com/dghubble/sling
- go get github.com/go-resty/resty
- if [ "${USE_BAZEL}" = true ]; then ./.travis/install-bazel.sh 0.12.0; fi
- if [ -z "${USE_BAZEL}" ]; then ./.travis/install-protoc.sh 3.1.0; fi
- if [ -z "${USE_BAZEL}" ]; then ./.travis/install-swagger-codegen.sh 2.2.2; fi
- if [ -z "${USE_BAZEL}" ]; then nvm install v6.1 && nvm use v6.1 && node --version; fi
- go get github.com/golang/lint/golint
- go get github.com/dghubble/sling
- go get github.com/go-resty/resty
install:
- go get github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
- go get github.com/grpc-ecosystem/grpc-gateway/runtime
- go get github.com/grpc-ecosystem/grpc-gateway/examples
- go get github.com/grpc-ecosystem/grpc-gateway/examples/server
- go get github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
- go get github.com/grpc-ecosystem/grpc-gateway/runtime
- go get github.com/grpc-ecosystem/grpc-gateway/examples
- go get github.com/grpc-ecosystem/grpc-gateway/examples/server
before_script:
- sh -c 'cd examples/browser && npm install'
- sh -c 'cd examples/browser && npm install'
script:
- make realclean && make examples SWAGGER_CODEGEN="java -jar $HOME/local/swagger-codegen-cli.jar"
- if (go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") && [ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then test -z "$(git status --porcelain)" || (git status; git diff; exit 1); fi
- env GLOG_logtostderr=1 go test -race -v github.com/grpc-ecosystem/grpc-gateway/...
- if (go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") && [ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then env GLOG_logtostderr=1 ./bin/coverage; fi
- make lint
- sh -c 'cd examples/browser && node ./node_modules/gulp/bin/gulp'
- if [ "${USE_BAZEL}" = true ]; then ./.travis/bazel-build.sh; fi
- if [ "${USE_BAZEL}" = true ]; then ./.travis/bazel-test.sh; fi
- if [ -z "${USE_BAZEL}" ]; then make realclean && make examples SWAGGER_CODEGEN="java -jar $HOME/local/swagger-codegen-cli.jar"; fi
- if [ -z "${USE_BAZEL}" ] && (go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") && [ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then test -z "$(git status --porcelain)" || (git status; git diff; exit 1); fi
- if [ -z "${USE_BAZEL}" ]; then env GLOG_logtostderr=1 go test -race -v github.com/grpc-ecosystem/grpc-gateway/...; fi
- if [ -z "${USE_BAZEL}" ]; then make lint; fi
- if [ -z "${USE_BAZEL}" ]; then sh -c 'cd examples/browser && node ./node_modules/gulp/bin/gulp'; fi
- if (go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") && [ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then env GLOG_logtostderr=1 ./bin/coverage; fi
after_success:
- bash <(curl -s https://codecov.io/bash)
env:
global:
- "PATH=$PATH:$HOME/local/bin"
- GO_VERSION_TO_DIFF_TEST="go version go1\.10\.[0-9]\+ linux/amd64"
- "PATH=$PATH:$HOME/local/bin"
- GO_VERSION_TO_DIFF_TEST="go version go1\.10\.[0-9]\+ linux/amd64"
matrix:
- GATEWAY_PLUGIN_FLAGS=
- GATEWAY_PLUGIN_FLAGS=request_context=false
- GATEWAY_PLUGIN_FLAGS=
- GATEWAY_PLUGIN_FLAGS=request_context=false
matrix:
include:
- go: master
env: USE_BAZEL=true
10 changes: 10 additions & 0 deletions .travis/bazel-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh -eu

bazel \
--batch \
--output_base=$HOME/.cache/_grpc_gateway_bazel \
--host_jvm_args=-Xmx500m \
--host_jvm_args=-Xms500m \
build \
--local_resources=400,1,1.0 \
//...
12 changes: 12 additions & 0 deletions .travis/bazel-test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh -eu

bazel \
--batch \
--output_base=$HOME/.cache/_grpc_gateway_bazel \
--host_jvm_args=-Xmx500m \
--host_jvm_args=-Xms500m \
test \
--local_resources=400,1,1.0 \
--test_output=errors \
--features=race \
//...
20 changes: 20 additions & 0 deletions .travis/install-bazel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/sh -eu

bazel_version=$1

if test -z "${bazel_version}"; then
echo "Usage: .travis/install-bazel.sh bazel-version"
exit 1
fi

if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
OS=darwin
else
OS=linux
fi

filename=bazel-${bazel_version}-installer-${OS}-x86_64.sh
wget https://github.com/bazelbuild/bazel/releases/download/${bazel_version}/${filename}
chmod +x $filename
./$filename --user
rm -f $filename
23 changes: 23 additions & 0 deletions BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
load("@bazel_gazelle//:def.bzl", "gazelle")

# gazelle:exclude third_party

gazelle(
name = "gazelle_diff",
mode = "diff",
prefix = "github.com/grpc-ecosystem/grpc-gateway",
)

gazelle(
name = "gazelle_fix",
mode = "fix",
prefix = "github.com/grpc-ecosystem/grpc-gateway",
)

package_group(
name = "generators",
packages = [
"//protoc-gen-grpc-gateway/...",
"//protoc-gen-swagger/...",
],
)
41 changes: 41 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
workspace(name = "grpc_ecosystem_grpc_gateway")

http_archive(
name = "io_bazel_rules_go",
url = "https://github.com/bazelbuild/rules_go/releases/download/0.10.3/rules_go-0.10.3.tar.gz",
sha256 = "feba3278c13cde8d67e341a837f69a029f698d7a27ddbb2a202be7a10b22142a",
)

http_archive(
name = "bazel_gazelle",
url = "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.10.1/bazel-gazelle-0.10.1.tar.gz",
sha256 = "d03625db67e9fb0905bbd206fa97e32ae9da894fe234a493e7517fd25faec914",
)

load("@io_bazel_rules_go//go:def.bzl", "go_rules_dependencies", "go_register_toolchains")

go_rules_dependencies()

go_register_toolchains()

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")

gazelle_dependencies()

load("@io_bazel_rules_go//go:def.bzl", "go_repository")

go_repository(
name = "com_github_rogpeppe_fastuuid",
commit = "6724a57986aff9bff1a1770e9347036def7c89f6",
importpath = "github.com/rogpeppe/fastuuid",
)

go_repository(
name = "com_github_go_resty_resty",
commit = "f8815663de1e64d57cdd4ee9e2b2fa96977a030e",
importpath = "github.com/go-resty/resty",
)

load("//:repositories.bzl", "repositories")

repositories()
26 changes: 26 additions & 0 deletions codegenerator/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

package(default_visibility = ["//:generators"])

go_library(
name = "go_default_library",
srcs = [
"doc.go",
"parse_req.go",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/codegenerator",
deps = [
"@com_github_golang_protobuf//proto:go_default_library",
"@com_github_golang_protobuf//protoc-gen-go/plugin:go_default_library",
],
)

go_test(
name = "go_default_xtest",
srcs = ["parse_req_test.go"],
deps = [
":go_default_library",
"@com_github_golang_protobuf//proto:go_default_library",
"@com_github_golang_protobuf//protoc-gen-go/plugin:go_default_library",
],
)
45 changes: 45 additions & 0 deletions examples/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")

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

go_library(
name = "go_default_library",
srcs = ["main.go"],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples",
deps = [
"//examples/examplepb:go_default_library",
"//runtime:go_default_library",
"@com_github_golang_glog//:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
)

go_binary(
name = "examples",
embed = [":go_default_library"],
)

go_test(
name = "go_default_test",
size = "small",
srcs = [
"client_test.go",
"integration_test.go",
"main_test.go",
"proto_error_test.go",
],
embed = [":go_default_library"],
deps = [
"//examples/clients/abe:go_default_library",
"//examples/clients/echo:go_default_library",
"//examples/examplepb:go_default_library",
"//examples/server:go_default_library",
"//examples/sub:go_default_library",
"//runtime:go_default_library",
"@com_github_golang_protobuf//jsonpb:go_default_library",
"@com_github_golang_protobuf//proto:go_default_library",
"@com_github_golang_protobuf//ptypes/empty:go_default_library",
"@org_golang_google_genproto//googleapis/rpc/status:go_default_library",
"@org_golang_google_grpc//codes:go_default_library",
],
)
26 changes: 26 additions & 0 deletions examples/clients/abe/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")

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

go_library(
name = "go_default_library",
srcs = [
"ProtobufDuration.go",
"a_bit_of_everything_nested.go",
"a_bit_of_everything_service_api.go",
"api_client.go",
"api_response.go",
"camel_case_service_name_api.go",
"configuration.go",
"echo_rpc_api.go",
"echo_service_api.go",
"examplepb_a_bit_of_everything.go",
"examplepb_body.go",
"examplepb_numeric_enum.go",
"nested_deep_enum.go",
"protobuf_empty.go",
"sub_string_message.go",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/clients/abe",
deps = ["@com_github_go_resty_resty//:go_default_library"],
)
16 changes: 16 additions & 0 deletions examples/clients/echo/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")

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

go_library(
name = "go_default_library",
srcs = [
"api_client.go",
"api_response.go",
"configuration.go",
"echo_service_api.go",
"examplepb_simple_message.go",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/clients/echo",
deps = ["@com_github_go_resty_resty//:go_default_library"],
)
51 changes: 51 additions & 0 deletions examples/examplepb/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")

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

proto_library(
name = "examplepb_proto",
srcs = [
"a_bit_of_everything.proto",
"echo_service.proto",
"flow_combination.proto",
"stream.proto",
"wrappers.proto",
],
deps = [
"//examples/sub:sub_proto",
"//examples/sub2:sub2_proto",
"//protoc-gen-swagger/options:options_proto",
"@com_github_googleapis_googleapis//google/api:api_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:timestamp_proto",
"@com_google_protobuf//:wrappers_proto",
],
)

go_proto_library(
name = "examplepb_go_proto",
compilers = [
"@io_bazel_rules_go//proto:go_grpc",
"//protoc-gen-grpc-gateway:go_gen_grpc_gateway",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/examplepb",
proto = ":examplepb_proto",
deps = [
"//examples/sub:go_default_library",
"//examples/sub2:go_default_library",
"//protoc-gen-swagger/options:go_default_library",
"@com_github_golang_protobuf//ptypes/duration:go_default_library",
"@com_github_golang_protobuf//ptypes/empty:go_default_library",
"@com_github_golang_protobuf//ptypes/timestamp:go_default_library",
"@com_github_golang_protobuf//ptypes/wrappers:go_default_library",
"@com_github_googleapis_googleapis//google/api:go_default_library",
],
)

go_library(
name = "go_default_library",
embed = [":examplepb_go_proto"],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/examplepb",
)
29 changes: 29 additions & 0 deletions examples/server/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")

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

go_library(
name = "go_default_library",
srcs = [
"a_bit_of_everything.go",
"echo.go",
"flow_combination.go",
"main.go",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/server",
deps = [
"//examples/examplepb:go_default_library",
"//examples/sub:go_default_library",
"//examples/sub2:go_default_library",
"@com_github_golang_glog//:go_default_library",
"@com_github_golang_protobuf//proto:go_default_library",
"@com_github_golang_protobuf//ptypes/duration:go_default_library",
"@com_github_golang_protobuf//ptypes/empty:go_default_library",
"@com_github_rogpeppe_fastuuid//:go_default_library",
"@org_golang_google_genproto//googleapis/rpc/errdetails:go_default_library",
"@org_golang_google_grpc//:go_default_library",
"@org_golang_google_grpc//codes:go_default_library",
"@org_golang_google_grpc//metadata:go_default_library",
"@org_golang_google_grpc//status:go_default_library",
],
)
Loading

0 comments on commit 56fee81

Please sign in to comment.