Use go1.16 for go interop tests and for newly added interop_matrix tests. (#26124)

* use go1.16 for go interop tests

* add go1.16 runtime support for interop_matrix tests

* update copyright headers
pull/26140/head
Jan Tattermusch 4 years ago committed by GitHub
parent fb6669b171
commit 802375393a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template
  2. 23
      templates/tools/dockerfile/interoptest/grpc_interop_go1.16/Dockerfile.template
  3. 3
      templates/tools/dockerfile/interoptest/grpc_interop_go1.16/build_interop.sh.template
  4. 4
      tools/dockerfile/interoptest/grpc_interop_go/Dockerfile
  5. 37
      tools/dockerfile/interoptest/grpc_interop_go1.16/Dockerfile
  6. 33
      tools/dockerfile/interoptest/grpc_interop_go1.16/build_interop.sh
  7. 3
      tools/interop_matrix/client_matrix.py

@ -1,6 +1,6 @@
%YAML 1.2
--- |
# Copyright 2015 gRPC authors.
# Copyright 2021 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM golang:1.11
FROM golang:1.16
<%include file="../../go_path.include"/>
<%include file="../../python_deps.include"/>

@ -0,0 +1,23 @@
%YAML 1.2
--- |
# Copyright 2021 The 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.16
<%include file="../../go_path.include"/>
<%include file="../../python_deps.include"/>
# Define the default command.
CMD ["bash"]

@ -0,0 +1,3 @@
%YAML 1.2
--- |
<%include file="../../go_build_interop.sh.include"/>

@ -1,4 +1,4 @@
# Copyright 2015 gRPC authors.
# Copyright 2021 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM golang:1.11
FROM golang:1.16
# Using login shell removes Go from path, so we add it.
RUN ln -s /usr/local/go/bin/go /usr/local/bin

@ -0,0 +1,37 @@
# Copyright 2021 The 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.16
# 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/pip/2.7/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"]

@ -0,0 +1,33 @@
#!/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)

@ -54,7 +54,7 @@ def should_build_docker_interop_image_from_release_tag(lang):
# Dictionary of default runtimes per language
LANG_RUNTIME_MATRIX = {
'cxx': ['cxx'], # This is actually debian8.
'go': ['go1.8', 'go1.11'],
'go': ['go1.8', 'go1.11', 'go1.16'],
'java': ['java'],
'python': ['python', 'pythonasyncio'],
'node': ['node'],
@ -186,6 +186,7 @@ LANG_RELEASE_MATRIX = {
('v1.35.0', ReleaseInfo(runtimes=['go1.11'])),
('v1.36.0', ReleaseInfo(runtimes=['go1.11'])),
('v1.37.0', ReleaseInfo(runtimes=['go1.11'])),
# NOTE: starting from release v1.38.0, use runtimes=['go1.16']
]),
'java':
OrderedDict([

Loading…
Cancel
Save