Skip to content

Commit ed16ac7

Browse files
authored
feat: search gapic additional protos in BUILD.bazel (#2004)
* fix: search additional protos in `BUILD.bazel` * add unit tests * modify readme * only search in proto_library_with_info * fix showcase ci * add option: gapic_additional_protos * change showcase * change default value * remove unused function
1 parent 47811f7 commit ed16ac7

14 files changed

+128
-97
lines changed

library_generation/README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,22 @@ Use `--grpc_version` to specify the value.
9191

9292
Note that if specified, the version should be compatible with gapic-generator-java.
9393

94+
### gapic_additional_protos (optional)
95+
Additional protos that pass to the generator.
96+
The default value is `google/cloud/common_resources.proto`.
97+
98+
Use `--gapic_additional_protos` to specify the value.
99+
94100
### transport (optional)
95-
One of GAPIC options passed to the generator. The value is either `grpc` or `grpc+rest`.
101+
One of GAPIC options passed to the generator.
102+
The value is either `grpc` or `grpc+rest`.
96103
The default value is `grpc`.
97104

98105
Use `--transport` to specify the value.
99106

100107
### rest_numeric_enums (optional)
101-
One of GAPIC options passed to the generator. The value is either `true` or `false`.
108+
One of GAPIC options passed to the generator.
109+
The value is either `true` or `false`.
102110
The default value is `true`.
103111

104112
Use `--rest_numeric_enums` to specify the value.
@@ -121,6 +129,7 @@ library_generation/generate_library.sh \
121129
--gapic_generator_version 2.24.0 \
122130
--protobuf_version 23.2 \
123131
--grpc_version 1.55.1 \
132+
--gapic_additional_protos "google/cloud/common_resources.proto google/cloud/location/locations.proto" \
124133
--transport grpc+rest \
125134
--rest_numeric_enums true \
126135
--include_samples true

library_generation/generate_library.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ case $key in
2929
grpc_version="$2"
3030
shift
3131
;;
32+
--gapic_additional_protos)
33+
gapic_additional_protos="$2"
34+
shift
35+
;;
3236
--transport)
3337
transport="$2"
3438
shift
@@ -56,7 +60,6 @@ done
5660
script_dir=$(dirname "$(readlink -f "$0")")
5761
source "${script_dir}"/utilities.sh
5862
output_folder="$(get_output_folder)"
59-
# source utility functions
6063

6164
if [ -z "${protobuf_version}" ]; then
6265
protobuf_version=$(get_protobuf_version "${gapic_generator_version}")
@@ -66,6 +69,10 @@ if [ -z "${grpc_version}" ]; then
6669
grpc_version=$(get_grpc_version "${gapic_generator_version}")
6770
fi
6871

72+
if [ -z "${gapic_additional_protos}" ]; then
73+
gapic_additional_protos="google/cloud/common_resources.proto"
74+
fi
75+
6976
if [ -z "${transport}" ]; then
7077
transport="grpc"
7178
fi
@@ -117,7 +124,7 @@ fi
117124
"--plugin=protoc-gen-java_gapic=${script_dir}/gapic-generator-java-wrapper" \
118125
"--java_gapic_out=metadata:${destination_path}/java_gapic_srcjar_raw.srcjar.zip" \
119126
"--java_gapic_opt=$(get_gapic_opts)" \
120-
${proto_files} $(search_additional_protos)
127+
${proto_files} ${gapic_additional_protos}
121128

122129
unzip -o -q "${destination_path}/java_gapic_srcjar_raw.srcjar.zip" -d "${destination_path}"
123130
# Sync'\''d to the output file name in Writer.java.

library_generation/test/generate_library_integration_test.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ grep -v '^ *#' < "${proto_path_list}" | while IFS= read -r line; do
6868
# parse GAPIC options from proto_path/BUILD.bazel
6969
pushd "${output_folder}"
7070
proto_build_file_path="${proto_path}/BUILD.bazel"
71+
gapic_additional_protos=$(get_gapic_additional_protos_from_BUILD "${proto_build_file_path}")
7172
transport=$(get_transport_from_BUILD "${proto_build_file_path}")
7273
rest_numeric_enums=$(get_rest_numeric_enums_from_BUILD "${proto_build_file_path}")
7374
include_samples=$(get_include_samples_from_BUILD "${proto_build_file_path}")
@@ -81,6 +82,7 @@ grep -v '^ *#' < "${proto_path_list}" | while IFS= read -r line; do
8182
--gapic_generator_version "${gapic_generator_version}" \
8283
--protobuf_version "${protobuf_version}" \
8384
--grpc_version "${grpc_version}" \
85+
--gapic_additional_protos "${gapic_additional_protos}" \
8486
--transport "${transport}" \
8587
--rest_numeric_enums "${rest_numeric_enums}" \
8688
--include_samples "${include_samples}"

library_generation/test/generate_library_unit_tests.sh

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -41,40 +41,6 @@ get_protobuf_version_failed_with_invalid_generator_version_test() {
4141
assertEquals 1 $((res))
4242
}
4343

44-
search_additional_protos_common_resources_test() {
45-
local proto_path="${script_dir}/resources/search_additional_proto/common_resources"
46-
local addition_protos
47-
addition_protos=$(search_additional_protos)
48-
assertEquals "google/cloud/common_resources.proto" "${addition_protos}"
49-
}
50-
51-
search_additional_protos_iam_test() {
52-
local proto_path="${script_dir}/resources/search_additional_protos/iam"
53-
local addition_protos
54-
addition_protos=$(search_additional_protos)
55-
assertEquals \
56-
"google/cloud/common_resources.proto google/iam/v1/iam_policy.proto" \
57-
"${addition_protos}"
58-
}
59-
60-
search_additional_protos_location_test() {
61-
local proto_path="${script_dir}/resources/search_additional_protos/location"
62-
local addition_protos
63-
addition_protos=$(search_additional_protos)
64-
assertEquals \
65-
"google/cloud/common_resources.proto google/cloud/location/locations.proto" \
66-
"${addition_protos}"
67-
}
68-
69-
search_additional_protos_iam_location_test() {
70-
local proto_path="${script_dir}/resources/search_additional_protos/iam_location"
71-
local addition_protos
72-
addition_protos=$(search_additional_protos)
73-
assertEquals \
74-
"google/cloud/common_resources.proto google/iam/v1/iam_policy.proto google/cloud/location/locations.proto" \
75-
"${addition_protos}"
76-
}
77-
7844
get_gapic_opts_with_rest_test() {
7945
local proto_path="${script_dir}/resources/gapic_options"
8046
local transport="grpc"
@@ -227,6 +193,34 @@ generate_library_failed_with_invalid_grpc_version() {
227193
cleanup "${destination}"
228194
}
229195

196+
get_gapic_additional_protos_from_BUILD_common_resources_test() {
197+
local proto_path="${script_dir}/resources/search_additional_protos/BUILD_common_resources.bazel"
198+
local addition_protos
199+
addition_protos=$(get_gapic_additional_protos_from_BUILD "${proto_path}")
200+
assertEquals "google/cloud/common_resources.proto" "${addition_protos}"
201+
}
202+
203+
get_gapic_additional_protos_from_BUILD_iam_policy_test() {
204+
local proto_path="${script_dir}/resources/search_additional_protos/BUILD_iam_policy.bazel"
205+
local addition_protos
206+
addition_protos=$(get_gapic_additional_protos_from_BUILD "${proto_path}")
207+
assertEquals "google/cloud/common_resources.proto google/iam/v1/iam_policy.proto" "${addition_protos}"
208+
}
209+
210+
get_gapic_additional_protos_from_BUILD_locations_test() {
211+
local proto_path="${script_dir}/resources/search_additional_protos/BUILD_locations.bazel"
212+
local addition_protos
213+
addition_protos=$(get_gapic_additional_protos_from_BUILD "${proto_path}")
214+
assertEquals "google/cloud/common_resources.proto google/cloud/location/locations.proto" "${addition_protos}"
215+
}
216+
217+
get_gapic_additional_protos_from_BUILD_iam_locations_test() {
218+
local proto_path="${script_dir}/resources/search_additional_protos/BUILD_iam_locations.bazel"
219+
local addition_protos
220+
addition_protos=$(get_gapic_additional_protos_from_BUILD "${proto_path}")
221+
assertEquals "google/cloud/common_resources.proto google/iam/v1/iam_policy.proto google/cloud/location/locations.proto" "${addition_protos}"
222+
}
223+
230224
get_transport_from_BUILD_grpc_rest_test() {
231225
local build_file="${script_dir}/resources/misc/BUILD_grpc_rest.bazel"
232226
local transport
@@ -316,10 +310,6 @@ test_list=(
316310
get_grpc_version_failed_with_invalid_generator_version_test
317311
get_protobuf_version_succeed_with_valid_generator_version_test
318312
get_protobuf_version_failed_with_invalid_generator_version_test
319-
search_additional_protos_common_resources_test
320-
search_additional_protos_iam_test
321-
search_additional_protos_location_test
322-
search_additional_protos_iam_location_test
323313
get_gapic_opts_with_rest_test
324314
get_gapic_opts_without_rest_test
325315
remove_grpc_version_test
@@ -336,6 +326,10 @@ test_list=(
336326
generate_library_failed_with_invalid_generator_version
337327
generate_library_failed_with_invalid_protobuf_version
338328
generate_library_failed_with_invalid_grpc_version
329+
get_gapic_additional_protos_from_BUILD_common_resources_test
330+
get_gapic_additional_protos_from_BUILD_iam_policy_test
331+
get_gapic_additional_protos_from_BUILD_locations_test
332+
get_gapic_additional_protos_from_BUILD_iam_locations_test
339333
get_transport_from_BUILD_grpc_rest_test
340334
get_transport_from_BUILD_grpc_test
341335
get_transport_from_BUILD_rest_test
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# this file is only used in testing `get_gapic_additional_protos_from_BUILD` in utilities.sh
2+
3+
proto_library_with_info(
4+
deps = [
5+
]
6+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# this file is only used in testing `get_gapic_additional_protos_from_BUILD` in utilities.sh
2+
3+
proto_library_with_info(
4+
deps = [
5+
"//google/iam/v1:iam_policy_proto",
6+
"//google/cloud/location:location_proto",
7+
]
8+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# this file is only used in testing `get_gapic_additional_protos_from_BUILD` in utilities.sh
2+
3+
proto_library_with_info(
4+
deps = [
5+
"//google/iam/v1:iam_policy_proto",
6+
]
7+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# this file is only used in testing `get_gapic_additional_protos_from_BUILD` in utilities.sh
2+
3+
proto_library_with_info(
4+
deps = [
5+
"//google/cloud/location:location_proto",
6+
]
7+
)

library_generation/test/resources/search_additional_protos/common_resources/search_additional_protos_common_resources_test.yaml

Lines changed: 0 additions & 10 deletions
This file was deleted.

library_generation/test/resources/search_additional_protos/iam/search_additional_protos_iam_test.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)