[Deps ] Upgrade oldest supported clang version to clang-7 (#37572)

<!--

If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the appropriate
lang label.

-->

Closes #37572

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37572 from yijiem:upgrade-clang-7 03f8cdc54e
PiperOrigin-RevId: 670692896
pull/37541/head
Yijie Ma 3 months ago committed by Copybara-Service
parent 48cc84b435
commit 9b987295f6
  1. 29
      templates/tools/dockerfile/test/cxx_clang_7_x64/Dockerfile.template
  2. 1
      tools/dockerfile/test/cxx_clang_7_x64.current_version
  3. 83
      tools/dockerfile/test/cxx_clang_7_x64/Dockerfile
  4. 6
      tools/run_tests/run_tests.py
  5. 2
      tools/run_tests/run_tests_matrix.py

@ -0,0 +1,29 @@
%YAML 1.2
--- |
# Copyright 2021 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 silkeh/clang:7-buster
RUN apt update && apt -y upgrade && apt install -y build-essential curl git time wget zip && apt clean
<%include file="../../git_avoid_dubious_ownership_error.include"/>
<%include file="../../run_tests_python_deps.include"/>
<%include file="../../cxx_test_deps.include"/>
<%include file="../../cxx_deps.include"/>
<%include file="../../cmake_from_install_script.include"/>
<%include file="../../ccache.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]

@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_7_x64:e921e71a352c09ab68e0068c9c4cd6b5df121e84@sha256:b35f94648ada85aab9110dae0ebca594cd278672d4bbce38312cefa372952cae

@ -0,0 +1,83 @@
# Copyright 2021 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 silkeh/clang:7-buster
RUN apt update && apt -y upgrade && apt install -y build-essential curl git time wget zip && apt clean
#=================
# Setup git to access working directory across docker boundary.
# This avoids the "fatal: detected dubious ownership in repository XYZ"
# git error.
RUN git config --global --add safe.directory '*'
RUN git config --global protocol.file.allow always
#====================
# run_tests.py python dependencies
# Basic python dependencies to be able to run tools/run_tests python scripts
# These dependencies are not sufficient to build gRPC Python, gRPC Python
# deps are defined elsewhere (e.g. python_deps.include)
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-setuptools \
python3-yaml \
&& apt-get clean
# use pinned version of pip to avoid sudden breakages
RUN python3 -m pip install --upgrade pip==19.3.1
# TODO(jtattermusch): currently six is needed for tools/run_tests scripts
# but since our python2 usage is deprecated, we should get rid of it.
RUN python3 -m pip install six==1.16.0
# Google Cloud Platform API libraries
# These are needed for uploading test results to BigQuery (e.g. by tools/run_tests scripts)
RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-client==1.12.8 oauth2client==4.1.0
# Some cxx tests depend on the twisted package
RUN python3 -m pip install twisted
#=================
# C++ dependencies
RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean
#=================
# Install cmake using the install script.
RUN curl -sSL -o cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.16.1/cmake-3.16.1-Linux-x86_64.sh \
&& sh cmake-linux.sh -- --skip-license --prefix=/usr \
&& rm cmake-linux.sh
#=================
# Install ccache
# Install ccache from source since ccache 3.x packaged with most linux distributions
# does not support Redis backend for caching.
RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/download/v4.7.5/ccache-4.7.5.tar.gz \
&& tar -zxf ccache.tar.gz \
&& cd ccache-4.7.5 \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON .. \
&& make -j4 && make install \
&& cd ../.. \
&& rm -rf ccache-4.7.5 ccache.tar.gz
RUN mkdir /var/local/jenkins
# Define the default command.
CMD ["bash"]

@ -604,8 +604,8 @@ class CLanguage(object):
)
elif compiler == "gcc_musl":
return ("alpine", [])
elif compiler == "clang6":
return ("clang_6", self._clang_cmake_configure_extra_args())
elif compiler == "clang7":
return ("clang_7", self._clang_cmake_configure_extra_args())
elif compiler == "clang18":
return ("clang_18", self._clang_cmake_configure_extra_args())
else:
@ -1672,7 +1672,7 @@ argp.add_argument(
"gcc12",
"gcc12_openssl309",
"gcc_musl",
"clang6",
"clang7",
"clang18",
# TODO: Automatically populate from supported version
"python3.7",

@ -361,7 +361,7 @@ def _create_portability_test_jobs(
"gcc12",
"gcc12_openssl309",
"gcc_musl",
"clang6",
"clang7",
"clang18",
]:
test_jobs += _generate_jobs(

Loading…
Cancel
Save