From 694f226586cf0a23d999a22e0945dd4871e198dd Mon Sep 17 00:00:00 2001 From: Easwar Swaminathan Date: Tue, 24 Nov 2020 15:38:18 -0800 Subject: [PATCH 1/6] interop: Enable Go modules support --- .../dockerfile/interoptest/grpc_interop_go/build_interop.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh index b11ace3a4e7..6e162ead473 100755 --- a/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh @@ -16,6 +16,12 @@ # Builds Go interop server and client in a base image. set -e +# Turn on support for Go modules. +# The make commands executed from the script eventually call `go get`, and +# without Go modules support, those will download dependencies at head, which +# is not what we want. +export GO111MODULE=on + # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. From 2b21f774c6e50915a82dcc93d10f72e0c7140555 Mon Sep 17 00:00:00 2001 From: Easwar Swaminathan Date: Mon, 30 Nov 2020 11:55:49 -0800 Subject: [PATCH 2/6] remove calls to deps --- .../dockerfile/interoptest/grpc_interop_go/build_interop.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh index 6e162ead473..309340cb9ed 100755 --- a/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go/build_interop.sh @@ -17,9 +17,6 @@ set -e # Turn on support for Go modules. -# The make commands executed from the script eventually call `go get`, and -# without Go modules support, those will download dependencies at head, which -# is not what we want. export GO111MODULE=on # Clone just the grpc-go source code without any dependencies. @@ -27,9 +24,6 @@ export GO111MODULE=on # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc -# Get all gRPC Go dependencies -(cd src/google.golang.org/grpc && make deps && make testdeps) - # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true From 3208a98787fed142afe8dd44dd6098bda66dc9c1 Mon Sep 17 00:00:00 2001 From: Easwar Swaminathan Date: Mon, 30 Nov 2020 17:20:53 -0800 Subject: [PATCH 3/6] try setting GO111MODULE in interop test runner --- tools/run_tests/run_interop_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index a3e2d34f5ad..4f525d552c2 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -331,7 +331,7 @@ class GoLanguage: return ['go', 'run', 'server.go'] + args def global_env(self): - return {} + return {'GO111MODULE': 'on'} def unimplemented_test_cases(self): return _SKIP_COMPRESSION From 0f2385a28d1eadb25ee069c8fc664f6cc3b58b7b Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 1 Dec 2020 11:09:30 +0100 Subject: [PATCH 4/6] generate go build_interop.sh from the template --- templates/tools/dockerfile/go_build_interop.sh.include | 6 +++--- .../interoptest/grpc_interop_go1.11/build_interop.sh | 6 +++--- .../interoptest/grpc_interop_go1.7/build_interop.sh | 6 +++--- .../interoptest/grpc_interop_go1.8/build_interop.sh | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/templates/tools/dockerfile/go_build_interop.sh.include b/templates/tools/dockerfile/go_build_interop.sh.include index bf5ff9228e2..a6bfeeba8c4 100755 --- a/templates/tools/dockerfile/go_build_interop.sh.include +++ b/templates/tools/dockerfile/go_build_interop.sh.include @@ -16,14 +16,14 @@ # Builds Go interop server and client in a base image. set -e +# Turn on support for Go modules. +export GO111MODULE=on + # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc -# Get all gRPC Go dependencies -(cd src/google.golang.org/grpc && make deps && make testdeps) - # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.11/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go1.11/build_interop.sh index b11ace3a4e7..309340cb9ed 100644 --- a/tools/dockerfile/interoptest/grpc_interop_go1.11/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go1.11/build_interop.sh @@ -16,14 +16,14 @@ # Builds Go interop server and client in a base image. set -e +# Turn on support for Go modules. +export GO111MODULE=on + # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc -# Get all gRPC Go dependencies -(cd src/google.golang.org/grpc && make deps && make testdeps) - # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh index b11ace3a4e7..309340cb9ed 100644 --- a/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh @@ -16,14 +16,14 @@ # Builds Go interop server and client in a base image. set -e +# Turn on support for Go modules. +export GO111MODULE=on + # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc -# Get all gRPC Go dependencies -(cd src/google.golang.org/grpc && make deps && make testdeps) - # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh index b11ace3a4e7..309340cb9ed 100644 --- a/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh @@ -16,14 +16,14 @@ # Builds Go interop server and client in a base image. set -e +# Turn on support for Go modules. +export GO111MODULE=on + # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc -# Get all gRPC Go dependencies -(cd src/google.golang.org/grpc && make deps && make testdeps) - # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true From 1fb53d96982a52f71bedb3924778fb10569f7afc Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 1 Dec 2020 11:18:02 +0100 Subject: [PATCH 5/6] remove unused go1.7 image --- .../grpc_interop_go1.7/Dockerfile.template | 23 ------------ .../build_interop.sh.template | 3 -- .../interoptest/grpc_interop_go1.7/Dockerfile | 37 ------------------- .../grpc_interop_go1.7/build_interop.sh | 33 ----------------- 4 files changed, 96 deletions(-) delete mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile.template delete mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh.template delete mode 100644 tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile delete mode 100644 tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile.template deleted file mode 100644 index ac7bf30e73e..00000000000 --- a/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile.template +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.2 ---- | - # Copyright 2017 gRPC authors. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - - FROM golang:1.7 - - <%include file="../../go_path.include"/> - <%include file="../../python_deps.include"/> - # Define the default command. - CMD ["bash"] - diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh.template b/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh.template deleted file mode 100644 index a08798b1d6b..00000000000 --- a/templates/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh.template +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.2 ---- | - <%include file="../../go_build_interop.sh.include"/> diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile deleted file mode 100644 index ad79c75a605..00000000000 --- a/tools/dockerfile/interoptest/grpc_interop_go1.7/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2017 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM golang:1.7 - -# Using login shell removes Go from path, so we add it. -RUN ln -s /usr/local/go/bin/go /usr/local/bin - -#==================== -# Python dependencies - -# Install dependencies - -RUN apt-get update && apt-get install -y \ - python-all-dev \ - python3-all-dev \ - python-setuptools - -# Install Python packages from PyPI -RUN curl https://bootstrap.pypa.io/get-pip.py | python2.7 -RUN pip install --upgrade pip==19.3.1 -RUN pip install virtualenv==16.7.9 -RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.5.2.post1 six==1.15.0 twisted==17.5.0 - -# Define the default command. -CMD ["bash"] diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh deleted file mode 100644 index 309340cb9ed..00000000000 --- a/tools/dockerfile/interoptest/grpc_interop_go1.7/build_interop.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Copyright 2015 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Builds Go interop server and client in a base image. -set -e - -# Turn on support for Go modules. -export GO111MODULE=on - -# Clone just the grpc-go source code without any dependencies. -# We are cloning from a local git repo that contains the right revision -# to test instead of using "go get" to download from Github directly. -git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc - -# copy service account keys if available -cp -r /var/local/jenkins/service_account $HOME || true - -# Build the interop client and server -(cd src/google.golang.org/grpc/interop/client && go install) -(cd src/google.golang.org/grpc/interop/server && go install) - From b29676dec5e48c35f64060039167d6fdaa8bbf59 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 1 Dec 2020 11:19:53 +0100 Subject: [PATCH 6/6] restore go1.8 image --- .../grpc_interop_go1.8/build_interop.sh.template | 3 --- .../interoptest/grpc_interop_go1.8/build_interop.sh | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) delete mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh.template diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh.template b/templates/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh.template deleted file mode 100644 index a08798b1d6b..00000000000 --- a/templates/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh.template +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.2 ---- | - <%include file="../../go_build_interop.sh.include"/> diff --git a/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh index 309340cb9ed..b11ace3a4e7 100644 --- a/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_go1.8/build_interop.sh @@ -16,14 +16,14 @@ # Builds Go interop server and client in a base image. set -e -# Turn on support for Go modules. -export GO111MODULE=on - # Clone just the grpc-go source code without any dependencies. # We are cloning from a local git repo that contains the right revision # to test instead of using "go get" to download from Github directly. git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc +# Get all gRPC Go dependencies +(cd src/google.golang.org/grpc && make deps && make testdeps) + # copy service account keys if available cp -r /var/local/jenkins/service_account $HOME || true