From e6ca4f0b794c377b09d33ffe2d20d78df60f73a8 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 7 Nov 2017 16:40:38 +0100 Subject: [PATCH] consolidate C# interop test docker images --- .../csharp_build_interop.sh.include | 32 +++++++++++++++++++ .../build_interop.sh.template | 3 ++ .../Dockerfile.template | 26 +++++++++++++++ .../build_interop.sh.template | 3 ++ .../grpc_interop_csharpcoreclr/Dockerfile | 3 +- .../build_interop.sh | 2 +- 6 files changed, 67 insertions(+), 2 deletions(-) create mode 100755 templates/tools/dockerfile/csharp_build_interop.sh.include create mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh.template create mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile.template create mode 100644 templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh.template mode change 100755 => 100644 tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh diff --git a/templates/tools/dockerfile/csharp_build_interop.sh.include b/templates/tools/dockerfile/csharp_build_interop.sh.include new file mode 100755 index 00000000000..d36e81c8a9b --- /dev/null +++ b/templates/tools/dockerfile/csharp_build_interop.sh.include @@ -0,0 +1,32 @@ +#!/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 C# interop server and client in a base image. +set -e + +mkdir -p /var/local/git +git clone /var/local/jenkins/grpc /var/local/git/grpc +# clone gRPC submodules, use data from locally cloned submodules where possible +(cd /var/local/jenkins/grpc/ && git submodule foreach 'cd /var/local/git/grpc ${'\\'} +&& git submodule update --init --reference /var/local/jenkins/grpc/<%text>${name} ${'\\'} +<%text>${name}') + +# copy service account keys if available +cp -r /var/local/jenkins/service_account $HOME || true + +cd /var/local/git/grpc + +# build C# interop client & server +tools/run_tests/run_tests.py -l csharp -c dbg --build_only diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh.template b/templates/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh.template new file mode 100644 index 00000000000..71aae5b9f9e --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh.template @@ -0,0 +1,3 @@ +%YAML 1.2 +--- | + <%include file="../../csharp_build_interop.sh.include"/> \ No newline at end of file diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile.template new file mode 100644 index 00000000000..a1f1283de0f --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile.template @@ -0,0 +1,26 @@ +%YAML 1.2 +--- | + # 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. + + FROM debian:jessie + + <%include file="../../apt_get_basic.include"/> + <%include file="../../python_deps.include"/> + <%include file="../../csharp_deps.include"/> + <%include file="../../csharp_dotnetcli_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] + diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh.template b/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh.template new file mode 100644 index 00000000000..71aae5b9f9e --- /dev/null +++ b/templates/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh.template @@ -0,0 +1,3 @@ +%YAML 1.2 +--- | + <%include file="../../csharp_build_interop.sh.include"/> \ No newline at end of file diff --git a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile index 56b8be89ec6..ea82476b65f 100644 --- a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile +++ b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/Dockerfile @@ -22,6 +22,7 @@ RUN apt-get update && apt-get install -y \ bzip2 \ ccache \ curl \ + dnsutils \ gcc \ gcc-multilib \ git \ @@ -61,7 +62,7 @@ RUN apt-get update && apt-get install -y \ # Install Python packages from PyPI RUN pip install --upgrade pip==9.0.1 RUN pip install virtualenv -RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.2.0 six==1.10.0 +RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.2.0 six==1.10.0 twisted==17.5.0 #================ # C# dependencies diff --git a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh old mode 100755 new mode 100644 index bd01eacb158..1c25ab32faf --- a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh +++ b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh @@ -29,4 +29,4 @@ cp -r /var/local/jenkins/service_account $HOME || true cd /var/local/git/grpc # build C# interop client & server -tools/run_tests/run_tests.py -l csharp -c dbg --compiler coreclr --build_only +tools/run_tests/run_tests.py -l csharp -c dbg --build_only