From cb8114d6895a50c1b9c48600f921bf496961740b Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Thu, 4 Mar 2021 09:40:31 +0100 Subject: [PATCH] Delete no longer needed artifact_linux dockerfiles (#25542) * delete no longer needed artifact_linux dockerfiles * fix build_package_python.sh --- .../grpc_artifact_linux_x64/Dockerfile | 85 ------------------ .../grpc_artifact_linux_x86/Dockerfile | 86 ------------------- .../artifacts/build_package_python.sh | 8 +- tools/run_tests/artifacts/package_targets.py | 13 ++- 4 files changed, 12 insertions(+), 180 deletions(-) delete mode 100644 tools/dockerfile/grpc_artifact_linux_x64/Dockerfile delete mode 100644 tools/dockerfile/grpc_artifact_linux_x86/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile deleted file mode 100644 index 922e61b1689..00000000000 --- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2016 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. - -# Docker file for building gRPC artifacts. - -FROM debian:jessie -RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list - -# Install Git and basic packages. -RUN apt-get update && apt-get install -y \ - autoconf \ - autotools-dev \ - build-essential \ - bzip2 \ - clang \ - curl \ - gcc \ - gcc-multilib \ - git \ - golang \ - libc6 \ - libc6-dbg \ - libc6-dev \ - libgtest-dev \ - libtool \ - make \ - perl \ - strace \ - python-dev \ - python-setuptools \ - python-yaml \ - telnet \ - unzip \ - wget \ - zip && apt-get clean - - -################## -# Ruby dependencies - -# Install rvm -RUN apt-get update && apt-get install -y gnupg2 -RUN gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB -RUN \curl -sSL https://get.rvm.io | bash -s stable - -# Install Ruby 2.1 -RUN /bin/bash -l -c "rvm install ruby-2.1" -RUN /bin/bash -l -c "rvm use --default ruby-2.1" -RUN /bin/bash -l -c "echo 'gem: --no-document' > ~/.gemrc" -RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" -RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" -RUN /bin/bash -l -c "gem install bundler -v 1.17.3 --no-document" - -################## -# C# dependencies (needed to build grpc_csharp_ext) - -# Use cmake 3.6 from jessie-backports -RUN echo "deb http://archive.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/jessie-backports.list -RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf -RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list -RUN apt-get update && apt-get install -t jessie-backports -y cmake && apt-get clean - - -################## -# Python AuditWheel dependencies (needed to check manylinux1 compatibility) - -RUN apt-get install -y python3 python3-pip -RUN pip3 install auditwheel==2.1.1 - - -RUN mkdir /var/local/jenkins - -# Define the default command. -CMD ["bash"] diff --git a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile deleted file mode 100644 index 8738137f5b2..00000000000 --- a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright 2016 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. - -# Docker file for building gRPC artifacts. - -FROM i386/debian:jessie -RUN sed -i '/deb http:\/\/http.debian.net\/debian jessie-updates main/d' /etc/apt/sources.list - -# Install Git and basic packages. -RUN apt-get update && apt-get install -y \ - autoconf \ - autotools-dev \ - build-essential \ - bzip2 \ - clang \ - curl \ - gcc \ - gcc-multilib \ - git \ - golang \ - libc6 \ - libc6-dbg \ - libc6-dev \ - libgtest-dev \ - libtool \ - make \ - perl \ - strace \ - python-dev \ - python-setuptools \ - python-yaml \ - telnet \ - unzip \ - wget \ - zip && apt-get clean - - -################## -# Ruby dependencies - -# Install rvm -RUN apt-get update && apt-get install -y gnupg2 -RUN gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB -RUN \curl -sSL https://get.rvm.io | bash -s stable - -# Install Ruby 2.1 -RUN /bin/bash -l -c "rvm install ruby-2.1" -RUN /bin/bash -l -c "rvm use --default ruby-2.1" -RUN /bin/bash -l -c "echo 'gem: --no-document' > ~/.gemrc" -RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" -RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" -RUN /bin/bash -l -c "gem install bundler -v 1.17.3 --no-document" - - -################## -# C# dependencies (needed to build grpc_csharp_ext) - -# Use cmake 3.6 from jessie-backports -RUN echo "deb http://archive.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/jessie-backports.list -RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf -RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list -RUN apt-get update && apt-get install -t jessie-backports -y cmake && apt-get clean - - -################## -# Python AuditWheel dependencies (needed to check manylinux1 compatibility) - -RUN apt-get install -y python3 python3-pip -RUN pip3 install auditwheel==2.1.1 - - -RUN mkdir /var/local/jenkins - -# Define the default command. -CMD ["bash"] diff --git a/tools/run_tests/artifacts/build_package_python.sh b/tools/run_tests/artifacts/build_package_python.sh index 65f694472f1..623eae7a280 100755 --- a/tools/run_tests/artifacts/build_package_python.sh +++ b/tools/run_tests/artifacts/build_package_python.sh @@ -23,21 +23,19 @@ mkdir -p artifacts/ # and we only collect them here to deliver them to the distribtest phase. cp -r "${EXTERNAL_GIT_ROOT}"/input_artifacts/python_*/* artifacts/ || true -apt-get install -y python-pip -python -m pip install -U pip==19.3.1 -python -m pip install -U wheel +export PYTHON=${PYTHON:-python} strip_binary_wheel() { WHEEL_PATH="$1" TEMP_WHEEL_DIR=$(mktemp -d) - python -m wheel unpack "$WHEEL_PATH" -d "$TEMP_WHEEL_DIR" + ${PYTHON} -m wheel unpack "$WHEEL_PATH" -d "$TEMP_WHEEL_DIR" find "$TEMP_WHEEL_DIR" -name "_protoc_compiler*.so" -exec strip --strip-debug {} ";" find "$TEMP_WHEEL_DIR" -name "cygrpc*.so" -exec strip --strip-debug {} ";" WHEEL_FILE=$(basename "$WHEEL_PATH") DISTRIBUTION_NAME=$(basename "$WHEEL_PATH" | cut -d '-' -f 1) VERSION=$(basename "$WHEEL_PATH" | cut -d '-' -f 2) - python -m wheel pack "$TEMP_WHEEL_DIR/$DISTRIBUTION_NAME-$VERSION" -d "$TEMP_WHEEL_DIR" + ${PYTHON} -m wheel pack "$TEMP_WHEEL_DIR/$DISTRIBUTION_NAME-$VERSION" -d "$TEMP_WHEEL_DIR" mv "$TEMP_WHEEL_DIR/$WHEEL_FILE" "$WHEEL_PATH" } diff --git a/tools/run_tests/artifacts/package_targets.py b/tools/run_tests/artifacts/package_targets.py index cc057ec7387..7123d180f5e 100644 --- a/tools/run_tests/artifacts/package_targets.py +++ b/tools/run_tests/artifacts/package_targets.py @@ -113,7 +113,7 @@ class RubyPackage: def build_jobspec(self): return create_docker_jobspec( - self.name, 'tools/dockerfile/grpc_artifact_linux_x64', + self.name, 'tools/dockerfile/grpc_artifact_centos6_x64', 'tools/run_tests/artifacts/build_package_ruby.sh') @@ -128,9 +128,14 @@ class PythonPackage: return [] def build_jobspec(self): + # since the python package build does very little, we can use virtually + # any image that has new-enough python, so reusing one of the images used + # for artifact building seems natural. return create_docker_jobspec( - self.name, 'tools/dockerfile/grpc_artifact_linux_x64', - 'tools/run_tests/artifacts/build_package_python.sh') + self.name, + 'tools/dockerfile/grpc_artifact_python_manylinux2014_x64', + 'tools/run_tests/artifacts/build_package_python.sh', + environ={'PYTHON': '/opt/python/cp39-cp39/bin/python'}) class PHPPackage: @@ -145,7 +150,7 @@ class PHPPackage: def build_jobspec(self): return create_docker_jobspec( - self.name, 'tools/dockerfile/grpc_artifact_linux_x64', + self.name, 'tools/dockerfile/grpc_artifact_centos6_x64', 'tools/run_tests/artifacts/build_package_php.sh')