Skip to content

Commit 74ea9b3

Browse files
vnorigoogstanley-cheung
authored andcommitted
automate running of interop tests on java connector code
1 parent 550c8d2 commit 74ea9b3

File tree

3 files changed

+61
-3
lines changed

3 files changed

+61
-3
lines changed

docker-compose.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,8 @@ services:
120120
image: grpcweb/interop-client
121121
ports:
122122
- "8081:8081"
123+
java-interop-server:
124+
build:
125+
context: ./
126+
dockerfile: ./net/grpc/gateway/docker/java_interop_server/Dockerfile
127+
image: grpcweb/java-interop-server
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Copyright 2018 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# https://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
FROM maven:3.6.1-jdk-8
16+
17+
RUN apt-get -qq update && apt-get -qq install -y \
18+
unzip
19+
20+
WORKDIR /tmp
21+
22+
RUN curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v3.12.2/\
23+
protoc-3.12.2-linux-x86_64.zip -o protoc.zip && \
24+
unzip -qq protoc.zip && \
25+
cp ./bin/protoc /usr/local/bin/protoc
26+
27+
RUN curl -sSL https://github.com/grpc/grpc-web/releases/download/1.2.0/\
28+
protoc-gen-grpc-web-1.2.0-linux-x86_64 -o /usr/local/bin/protoc-gen-grpc-web && \
29+
chmod +x /usr/local/bin/protoc-gen-grpc-web
30+
31+
WORKDIR /var/www/html/dist
32+
33+
WORKDIR /github/grpc-web
34+
35+
RUN git clone https://github.com/grpc/grpc-web . && \
36+
cd src/connector && \
37+
mvn install && \
38+
cd ../../net/grpc/gateway/examples/grpc-web-java/interop-test-service && \
39+
mvn package
40+
41+
ENTRYPOINT ["java", "-cp", "net/grpc/gateway/examples/grpc-web-java/interop-test-service/target/interop-test-0.1-jar-with-dependencies.jar", "grpcweb.examples.StartServiceAndGrpcwebProxy"]
42+

scripts/run_interop_tests.sh

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414
# limitations under the License.
1515
set -ex
1616

17+
run_tests () {
18+
docker run --network=host --rm grpcweb/prereqs /bin/bash \
19+
/github/grpc-web/scripts/docker-run-interop-tests.sh
20+
}
21+
1722
SCRIPT_DIR=$(dirname "$0")
1823
REPO_DIR=$(realpath "${SCRIPT_DIR}/..")
1924

@@ -31,7 +36,7 @@ done
3136

3237

3338
# Build all relevant docker images. They should all build successfully.
34-
docker-compose build common prereqs node-interop-server interop-client
39+
docker-compose build common prereqs node-interop-server interop-client java-interop-server
3540

3641

3742
# Run interop tests
@@ -40,13 +45,19 @@ pid1=$(docker run -d \
4045
--network=host envoyproxy/envoy:v1.14.1)
4146
pid2=$(docker run -d --network=host grpcweb/node-interop-server)
4247

43-
docker run --network=host --rm grpcweb/prereqs /bin/bash \
44-
/github/grpc-web/scripts/docker-run-interop-tests.sh
48+
run_tests
4549

4650
docker rm -f "$pid1"
4751
docker rm -f "$pid2"
4852

4953

54+
#
55+
# Run interop tests against grpc-web java connector code
56+
#
57+
pid3=$(docker run -d --network=host grpcweb/java-interop-server)
58+
run_tests
59+
docker rm -f "$pid3"
60+
5061
# Clean up
5162
git clean -f -d -x
5263
echo 'Completed'

0 commit comments

Comments
 (0)