diff options
author | Shuo Wang Hsu <shuohsu@google.com> | 2024-01-02 16:54:20 -0800 |
---|---|---|
committer | Shuo Wang Hsu <shuohsu@google.com> | 2024-01-02 16:54:22 -0800 |
commit | 67249fccf527662d90aed4eed2181fdd4cb682e3 (patch) | |
tree | 38fcc3ed3fb25375eaf918489ea17913adca8ebe /grpc/tools/dockerfile/test | |
parent | dde934ee51d1a9fa5562284fb0aface52c7adc2e (diff) | |
download | grpcio-sys-67249fccf527662d90aed4eed2181fdd4cb682e3.tar.gz |
Upgrade grpcio-sys to 0.13.0+1.56.2-patched
This project was upgraded with external_updater.
Usage: tools/external_updater/updater.sh update rust/crates/grpcio-sys
For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
Test: TreeHugger
Change-Id: Ife139c5ce97cbc54042f0820fe3caee5a7bdf083
Diffstat (limited to 'grpc/tools/dockerfile/test')
39 files changed, 311 insertions, 50 deletions
diff --git a/grpc/tools/dockerfile/test/android_ndk.current_version b/grpc/tools/dockerfile/test/android_ndk.current_version new file mode 100644 index 00000000..dbdacb00 --- /dev/null +++ b/grpc/tools/dockerfile/test/android_ndk.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/android_ndk:47e2befd3ceab97fa3e8ad5b8499b684380d624d@sha256:256ff2bb8fd6c6921cd7653f79fa495669c6466f78df96f71867f89f6d487ff3
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/android_ndk/Dockerfile b/grpc/tools/dockerfile/test/android_ndk/Dockerfile new file mode 100644 index 00000000..4be2803d --- /dev/null +++ b/grpc/tools/dockerfile/test/android_ndk/Dockerfile @@ -0,0 +1,116 @@ +# 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 debian:10 + +#================= +# Basic C core dependencies + +# C/C++ dependencies according to https://github.com/grpc/grpc/blob/master/BUILDING.md +RUN apt-get update && apt-get install -y \ + build-essential \ + autoconf \ + libtool \ + pkg-config \ + && apt-get clean + +# GCC +RUN apt-get update && apt-get install -y \ + gcc \ + g++ \ + && apt-get clean + +# libc6 +RUN apt-get update && apt-get install -y \ + libc6 \ + libc6-dbg \ + libc6-dev \ + && apt-get clean + +# Tools +RUN apt-get update && apt-get install -y \ + bzip2 \ + curl \ + dnsutils \ + git \ + lcov \ + make \ + strace \ + time \ + unzip \ + wget \ + zip \ + && apt-get clean + +#==================== +# 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 + + +#================= +# Install cmake +# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement. + +RUN apt-get update && apt-get install -y cmake && apt-get clean + + +RUN mkdir /var/local/jenkins + + +# Java required by Android SDK (using Eclipse Temurin Package) +RUN apt install -y wget apt-transport-https && \ + mkdir -p /etc/apt/keyrings && \ + wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ + echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list +RUN apt update && apt install -y temurin-8-jdk + +# Install Android SDK +ENV ANDROID_SDK_VERSION 4333796 +RUN mkdir -p /opt/android-sdk && cd /opt/android-sdk && \ + wget -q https://dl.google.com/android/repository/sdk-tools-linux-$ANDROID_SDK_VERSION.zip && \ + unzip -q sdk-tools-linux-$ANDROID_SDK_VERSION.zip && \ + rm sdk-tools-linux-$ANDROID_SDK_VERSION.zip +ENV ANDROID_SDK_PATH /opt/android-sdk +ENV ANDROID_HOME /opt/android-sdk +RUN yes | $ANDROID_SDK_PATH/tools/bin/sdkmanager --licenses # accept all licenses + +# Install gcloud +RUN curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-407.0.0-linux-x86_64.tar.gz && \ + tar -xf google-cloud-cli-407.0.0-linux-x86_64.tar.gz && \ + ./google-cloud-sdk/install.sh --bash-completion=false --path-update=true && \ + rm -rf google-cloud-cli-407.0.0-linux-x86_64.tar.gz +RUN ln -s /google-cloud-sdk/bin/gcloud /usr/local/bin/gcloud + +# Define the default command. +CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/bazel.current_version b/grpc/tools/dockerfile/test/bazel.current_version new file mode 100644 index 00000000..af96da44 --- /dev/null +++ b/grpc/tools/dockerfile/test/bazel.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/bazel:0f909e43012a80faa92e07b7871268841ce56ebc@sha256:1118150d9d9479787165fff49f660a3dc633f1c57604305460172fc1916aa022
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/bazel/Dockerfile b/grpc/tools/dockerfile/test/bazel/Dockerfile index 4600d0b2..070944ea 100644 --- a/grpc/tools/dockerfile/test/bazel/Dockerfile +++ b/grpc/tools/dockerfile/test/bazel/Dockerfile @@ -15,8 +15,8 @@ # Pinned version of the base image is used to avoid regressions caused # by rebuilding of this docker image. To see available versions, you can run # "gcloud container images list-tags gcr.io/oss-fuzz-base/base-builder" -# Image(5eceb81f5759) is built on Jan 31, 2022 -FROM gcr.io/oss-fuzz-base/base-builder@sha256:5eceb81f57599d63ca7c9a70c8968b23b128119699626ca749017019eb0b523f +# Image(a4ad7a70fe10) is built on Apr 19, 2023 +FROM gcr.io/oss-fuzz-base/base-builder@sha256:a4ad7a70fe10674c880ca8618a564860114a31dcdd6f9896aac89f0b2f86112a # -------------------------- WARNING -------------------------------------- # If you are making changes to this file, consider changing @@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \ # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 4.2.1 +ENV BAZEL_VERSION 6.1.2 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 @@ -57,6 +57,14 @@ RUN BAZEL_ARCH_SUFFIX="$(uname -m | sed s/aarch64/arm64/)" \ # The binary will work correctly when run on real arm64 # hardware, when qemu-user-static isn't getting into the way. +#================= +# Setup git to access working directory across docker boundary + +RUN git config --global --add safe.directory /var/local/jenkins/grpc +RUN git config --global protocol.file.allow always + + +RUN apt-get install -y gdb RUN mkdir -p /var/local/jenkins diff --git a/grpc/tools/dockerfile/test/bazel_arm64.current_version b/grpc/tools/dockerfile/test/bazel_arm64.current_version new file mode 100644 index 00000000..5447db87 --- /dev/null +++ b/grpc/tools/dockerfile/test/bazel_arm64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/bazel_arm64:a272710054f09ab7594fbae721de67ecd964d0a1@sha256:dd4a71e2852faf24b45e21445331f400bb278c83f6ad6d7d89d43c9ac564d529
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile b/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile index e8137ab7..3c138cd6 100644 --- a/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile +++ b/grpc/tools/dockerfile/test/bazel_arm64/Dockerfile @@ -88,7 +88,7 @@ RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 4.2.1 +ENV BAZEL_VERSION 6.1.2 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 diff --git a/grpc/tools/dockerfile/test/binder_transport_apk.current_version b/grpc/tools/dockerfile/test/binder_transport_apk.current_version new file mode 100644 index 00000000..188d50a9 --- /dev/null +++ b/grpc/tools/dockerfile/test/binder_transport_apk.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/binder_transport_apk:6f6d33e740ced89b744c2d8bdf0e9c4744cc1c52@sha256:85341f035e44601a93d16ff5b9b5810a0da313af03e2a76cf4135144633e0bab
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile b/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile index 10e624ce..dea06827 100644 --- a/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile +++ b/grpc/tools/dockerfile/test/binder_transport_apk/Dockerfile @@ -15,8 +15,8 @@ # Pinned version of the base image is used to avoid regressions caused # by rebuilding of this docker image. To see available versions, you can run # "gcloud container images list-tags gcr.io/oss-fuzz-base/base-builder" -# Image(5eceb81f5759) is built on Jan 31, 2022 -FROM gcr.io/oss-fuzz-base/base-builder@sha256:5eceb81f57599d63ca7c9a70c8968b23b128119699626ca749017019eb0b523f +# Image(a4ad7a70fe10) is built on Apr 19, 2023 +FROM gcr.io/oss-fuzz-base/base-builder@sha256:a4ad7a70fe10674c880ca8618a564860114a31dcdd6f9896aac89f0b2f86112a # -------------------------- WARNING -------------------------------------- # If you are making changes to this file, consider changing @@ -38,7 +38,7 @@ RUN apt-get update && apt-get -y install \ # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 4.2.1 +ENV BAZEL_VERSION 6.1.2 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 diff --git a/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version b/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version new file mode 100644 index 00000000..b55fe377 --- /dev/null +++ b/grpc/tools/dockerfile/test/csharp_debian11_arm64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/csharp_debian11_arm64:31749e35f65ff63a4965ac306d96b447e9811fb5@sha256:e1345c81aaab856eab0635ddbe612294bee9ee38d4938d3434eab277de6029b8
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version b/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version new file mode 100644 index 00000000..139abe51 --- /dev/null +++ b/grpc/tools/dockerfile/test/csharp_debian11_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/csharp_debian11_x64:4eead6ba66c39598d9bb9f5b8e46e114c460c717@sha256:a38ffe41c25486ad0624f54b4a5fa11e74772a06f537c553b3ae3944511ef348
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version b/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version new file mode 100644 index 00000000..9a3f785b --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_alpine_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_alpine_x64:946399d3635bc9bcf2f40c026b80213ce30e479c@sha256:a84a6faf639dcf4a3e32eec0f5a08169e9c9866750e5aa53bdf89e8d378d326a
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile index 819c986d..9121f4f7 100644 --- a/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/cxx_alpine_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.11 +FROM alpine:3.15 # Install Git and basic packages. RUN apk update && apk add \ @@ -66,6 +66,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa RUN mkdir /var/local/jenkins - +#================= +# Setup git to access working directory across docker boundary + +RUN git config --global --add safe.directory /var/local/jenkins/grpc +RUN git config --global protocol.file.allow always + + # Define the default command. CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version b/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version new file mode 100644 index 00000000..2259255e --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_clang_15_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_15_x64:99325d14f5121515b2454bfab9b59c155e182c18@sha256:906c0ca1edcab595fce313636528e6244d8fc914a6e72a22764e96208f465936
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile index c54962ae..e6d60b4a 100644 --- a/grpc/tools/dockerfile/test/cxx_clang_13_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/cxx_clang_15_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM silkeh/clang:13 +FROM silkeh/clang:15-bullseye RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean #==================== @@ -41,10 +41,6 @@ RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-clien #================= -# C++ dependencies -RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean - -#================= # Install cmake # Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement. @@ -67,6 +63,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa RUN mkdir /var/local/jenkins +#================= +# Setup git to access working directory across docker boundary + +RUN git config --global --add safe.directory /var/local/jenkins/grpc +RUN git config --global protocol.file.allow always + # Define the default command. CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version b/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version new file mode 100644 index 00000000..f3d14598 --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_clang_6_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_clang_6_x64:78958e51f94dfb5c8c5e0a1fde2cfa4ccf0fee02@sha256:c5cec74947c06174b21188eb9565f322a8543cd4878dc40b34cfcaee9a5fd94a
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_clang_6_x64/Dockerfile index 75ac65ea..e5ac6c1e 100644 --- a/grpc/tools/dockerfile/test/cxx_clang_4_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/cxx_clang_6_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM silkeh/clang:4 +FROM silkeh/clang:6 RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean #==================== diff --git a/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version b/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version new file mode 100644 index 00000000..04ee616e --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_debian11_openssl102_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_openssl102_x64:af647277e5acb05a89769f23a73a763be7423c53@sha256:15af353947cad7d7bead70ddb1e43a20cfa561de8e894aa7f92e320f55673959
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version b/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version new file mode 100644 index 00000000..e6532390 --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_debian11_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_x64:47b0a0916781ab659c049d44efb3f1496dae4660@sha256:a69a1ed729137c3ea347f0a3488524573285be7832dd74cec830db57b61a9b8c
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version b/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version new file mode 100644 index 00000000..63e3a3f2 --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_debian11_x86.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_debian11_x86:7b84ff94b76bcf1e67126468bcb816cd1badc859@sha256:fcb11fd175ef153f7abddf25d1f71e338d1874a4075287dcf3af765ea6226a98
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version b/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version new file mode 100644 index 00000000..843b08bb --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_gcc_12_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_gcc_12_x64:6c0ab4904f3c9aa9a38ba29f14c94dfc3e7901b2@sha256:a6d9f04d8075e697e16245004ab22bf22dd972c9724ecb750919816396186c09
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_gcc_12_x64/Dockerfile index 93e0e1f4..41b11be2 100644 --- a/grpc/tools/dockerfile/test/cxx_gcc_11_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/cxx_gcc_12_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM gcc:11 +FROM gcc:12 RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean #==================== diff --git a/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version b/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version new file mode 100644 index 00000000..7e105ab3 --- /dev/null +++ b/grpc/tools/dockerfile/test/cxx_gcc_7_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/cxx_gcc_7_x64:953aea35378bad8c12f2513c0dc6199bed1ca11d@sha256:7d33f341c7f7a5f358943c1f0b887de756079f406b7c7794e76cb0e42439c95b
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/cxx_gcc_5_x64/Dockerfile b/grpc/tools/dockerfile/test/cxx_gcc_7_x64/Dockerfile index bcbad5af..07283c83 100644 --- a/grpc/tools/dockerfile/test/cxx_gcc_5_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/cxx_gcc_7_x64/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM gcc:5 +FROM gcc:7 RUN apt-get update && apt-get install -y curl git time wget zip && apt-get clean #==================== @@ -41,13 +41,24 @@ RUN python3 -m pip install --upgrade google-auth==1.23.0 google-api-python-clien #================= -# Use cmake 3.6 from jessie-backports -# should only be used for images based on debian jessie. +# Install cmake +# Note that this step should be only used for distributions that have new enough cmake to satisfy gRPC's cmake version requirement. -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 +RUN apt-get update && apt-get install -y cmake && apt-get clean + +#================= +# 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.5.1/ccache-4.5.1.tar.gz \ + && tar -zxf ccache.tar.gz \ + && cd ccache-4.5.1 \ + && 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.5.1 ccache.tar.gz RUN mkdir /var/local/jenkins diff --git a/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version b/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version new file mode 100644 index 00000000..723f003c --- /dev/null +++ b/grpc/tools/dockerfile/test/php73_zts_debian11_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/php73_zts_debian11_x64:dc72ed4ad9a2a61dbaa410e266deff9c0c2765ac@sha256:db46a738bf187ffcabbd278a716930c87f90dec2599349c5a52937f9a17e96f8
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile b/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile index f157b24d..95b4ce9b 100644 --- a/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/php73_zts_debian11_x64/Dockerfile @@ -83,9 +83,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa RUN mkdir /var/local/jenkins - -# Seems required by XDS interop tests. +# Required by XDS interop test harness. RUN python3 -m pip install virtualenv==16.7.9 + # Define the default command. CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version b/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version new file mode 100644 index 00000000..b20ffd16 --- /dev/null +++ b/grpc/tools/dockerfile/test/php7_debian11_arm64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/php7_debian11_arm64:20fabcbf3bf31bdaf412fad5b504d466b5aab245@sha256:444e25f9e3a89c2438e4d5e6f3904c5a1f4d1fb961f8456333ebe3e36e301a4e
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/php7_debian11_x64.current_version b/grpc/tools/dockerfile/test/php7_debian11_x64.current_version new file mode 100644 index 00000000..624f7450 --- /dev/null +++ b/grpc/tools/dockerfile/test/php7_debian11_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/php7_debian11_x64:e6b7ccb98f6834b0cc7f01dff4e9694dd22d7d85@sha256:018d422abf144fc93e9027fd994f7d6aab453fffbe4a669d622dd3d1c1fe9ee7
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/python_alpine_x64.current_version b/grpc/tools/dockerfile/test/python_alpine_x64.current_version new file mode 100644 index 00000000..875b823b --- /dev/null +++ b/grpc/tools/dockerfile/test/python_alpine_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/python_alpine_x64:81425200ee33ca5370a49efc09d1d918eded5522@sha256:d10159225ae25276b7ae7bfc4230150e4b0a8ce7be833d904bdd4ecdfdc91c6e
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile b/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile index 70254d6e..c158e6db 100644 --- a/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/python_alpine_x64/Dockerfile @@ -12,24 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.11 +FROM alpine:3.15 # Install Git and basic packages. RUN apk update && apk add autoconf automake bzip2 build-base cmake ccache curl gcc git libtool linux-headers make perl strace python3-dev py3-pip unzip wget zip -RUN ln -s /usr/bin/pip3 /usr/bin/pip RUN ln -s /usr/bin/python3 /usr/bin/python # Install Python packages from PyPI RUN python3 -m pip install --upgrade pip==19.3.1 -RUN python3 -m pip install virtualenv -RUN python3 -m pip install futures==3.1.1 enum34==1.1.10 protobuf==3.5.2.post1 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 - #================= # Install ccache @@ -44,3 +40,12 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa && cd ../.. \ && rm -rf ccache-4.5.1 ccache.tar.gz + +RUN mkdir /var/local/jenkins + +#================= +# Setup git to access working directory across docker boundary + +RUN git config --global --add safe.directory /var/local/jenkins/grpc +RUN git config --global protocol.file.allow always + diff --git a/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version b/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version new file mode 100644 index 00000000..9b169fc5 --- /dev/null +++ b/grpc/tools/dockerfile/test/python_debian11_default_arm64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_arm64:faff3d19982d4a3f479a4d9633d28028834bc4df@sha256:868cfb50e465f086b75bb65a7fab6d15b1edefabcd8c1826340acefb6ea1737f
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version b/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version new file mode 100644 index 00000000..e99215e6 --- /dev/null +++ b/grpc/tools/dockerfile/test/python_debian11_default_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/python_debian11_default_x64:ee6a567ba2dee1502abec2d08b87b0c0caba8a42@sha256:df00d587bda7cbe4308e18def313fe893cffbeb5a807ab14a90ff0d87b1a001c
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version b/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version new file mode 100644 index 00000000..ed04a4e7 --- /dev/null +++ b/grpc/tools/dockerfile/test/rbe_ubuntu2004.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/rbe_ubuntu2004:58594aefea3481a4839f8411e365b58ef9f34fcc@sha256:d3951aeadf43e3bee6adc5b86d26cdaf0b9d1b5baf790d7b2530d1c197adc9f8
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile b/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile new file mode 100644 index 00000000..97d57045 --- /dev/null +++ b/grpc/tools/dockerfile/test/rbe_ubuntu2004/Dockerfile @@ -0,0 +1,84 @@ +# Copyright 2023 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 ubuntu:20.04 + +# Workaround the "tzdata hangs apt-get install during docker image build" issue for ubuntu20.04 +# by setting timezone to "Etc/UTC" in advance. +RUN echo "Etc/UTC" > /etc/timezone + +RUN apt-get update && apt-get install -y build-essential curl git time wget zip && apt-get clean + +#==================== +# 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 bazel tests expect "python" binary to exist +RUN ln -s /usr/bin/python3 /usr/bin/python + +# Install Google's LLVM build for Ubuntu 20.04 +# Heavily inspired by https://github.com/GoogleCloudPlatform/container-definitions/tree/master/ubuntu1804_rbe +# See go/llvm-docker +# Note that we are using the google's pre-built tools for multiple reasons: +# * this is what the "official" rbe-ubuntu18-04 image is using: See https://github.com/GoogleCloudPlatform/layer-definitions/tree/master/layers/ubuntu1804/clang +# * for sanitizers to work, we need MSAN and TSAN enabled versions of libc++ +# Check https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/latest.txt +# for the value of LLVM_LATEST. +ARG LLVM_LATEST="f2b94bd7eaa83d853dc7568fac87b1f8bf4ddec6" +RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/clang_r${LLVM_LATEST}.tar.gz -O /tmp/clang.tar.gz \ + && tar -xzf /tmp/clang.tar.gz -C /usr/local && rm /tmp/clang.tar.gz +RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx.tar.gz \ + && tar -xzf /tmp/libcxx.tar.gz -C /usr/local && rm /tmp/libcxx.tar.gz +RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx-msan_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx-msan.tar.gz \ + && mkdir -p /usr/local/libcxx-msan && tar -xzf /tmp/libcxx-msan.tar.gz -C /usr/local/libcxx-msan && rm /tmp/libcxx-msan.tar.gz +RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/libcxx-tsan_r${LLVM_LATEST}.tar.gz -O /tmp/libcxx-tsan.tar.gz \ + && mkdir -p /usr/local/libcxx-tsan && tar -xzf /tmp/libcxx-tsan.tar.gz -C /usr/local/libcxx-tsan && rm /tmp/libcxx-tsan.tar.gz +RUN wget -q https://storage.googleapis.com/clang-builds-stable/clang-ubuntu20_04/lld_r${LLVM_LATEST}.tar.gz -O /tmp/lld.tar.gz \ + && tar -xzf /tmp/lld.tar.gz -C /usr/local && rm /tmp/lld.tar.gz + +ENV ASAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer +ENV CC=/usr/local/bin/clang +ENV GCOV=/dev/null +ENV LD_LIBRARY_PATH=/usr/local/lib/x86_64-unknown-linux-gnu +ENV MSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer +ENV TSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer +ENV UBSAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer + +# TODO(jtattermusch): Remove python2 once some tests stop failing without it. +RUN apt-get update && apt-get install -y python2 && apt-get clean + +# Define the default command. +CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version b/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version new file mode 100644 index 00000000..986d9ffe --- /dev/null +++ b/grpc/tools/dockerfile/test/ruby_debian11_arm64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_arm64:215df896c707f55c3092a64afc4075c7a408b516@sha256:9503d80a40555aba4dd531b64354ad8036c6b37e162c93e7994ca23d89bc7d41
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile b/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile index 279bf7d1..65ea471b 100644 --- a/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile +++ b/grpc/tools/dockerfile/test/ruby_debian11_arm64/Dockerfile @@ -86,14 +86,14 @@ RUN apt-get update && apt-get install -y gnupg2 && apt-get clean RUN gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB RUN \curl -sSL https://get.rvm.io | bash -s stable -# Install Ruby 2.5 +# Install Ruby 2.7 RUN apt-get update && apt-get install -y procps && apt-get clean -RUN /bin/bash -l -c "rvm install ruby-2.5" -RUN /bin/bash -l -c "rvm use --default ruby-2.5" +RUN /bin/bash -l -c "rvm install ruby-2.7" +RUN /bin/bash -l -c "rvm use --default ruby-2.7" 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.5' >> ~/.bashrc" -RUN /bin/bash -l -c "gem install bundler --no-document -v 1.9" +RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.7' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install bundler --no-document" #================= # Install cmake @@ -118,9 +118,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa RUN mkdir /var/local/jenkins - -# Seems required by XDS interop tests. +# Required by XDS interop test harness. RUN python3 -m pip install virtualenv==16.7.9 + # Define the default command. CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version b/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version new file mode 100644 index 00000000..2f52045a --- /dev/null +++ b/grpc/tools/dockerfile/test/ruby_debian11_x64.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/ruby_debian11_x64:05ff6c04182addf087f77b2515992e98b9c7a171@sha256:3f01369c3e5707fa63007820b30461b9e32a4b729d81cb92d19669d7966a8584
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile b/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile index 4f180854..eab09a00 100644 --- a/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile +++ b/grpc/tools/dockerfile/test/ruby_debian11_x64/Dockerfile @@ -86,14 +86,14 @@ RUN apt-get update && apt-get install -y gnupg2 && apt-get clean RUN gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB RUN \curl -sSL https://get.rvm.io | bash -s stable -# Install Ruby 2.5 +# Install Ruby 2.7 RUN apt-get update && apt-get install -y procps && apt-get clean -RUN /bin/bash -l -c "rvm install ruby-2.5" -RUN /bin/bash -l -c "rvm use --default ruby-2.5" +RUN /bin/bash -l -c "rvm install ruby-2.7" +RUN /bin/bash -l -c "rvm use --default ruby-2.7" 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.5' >> ~/.bashrc" -RUN /bin/bash -l -c "gem install bundler --no-document -v 1.9" +RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.7' >> ~/.bashrc" +RUN /bin/bash -l -c "gem install bundler --no-document" #================= # Install cmake @@ -118,9 +118,9 @@ RUN curl -sSL -o ccache.tar.gz https://github.com/ccache/ccache/releases/downloa RUN mkdir /var/local/jenkins - -# Seems required by XDS interop tests. +# Required by XDS interop test harness. RUN python3 -m pip install virtualenv==16.7.9 + # Define the default command. CMD ["bash"] diff --git a/grpc/tools/dockerfile/test/sanity.current_version b/grpc/tools/dockerfile/test/sanity.current_version new file mode 100644 index 00000000..fcd7f663 --- /dev/null +++ b/grpc/tools/dockerfile/test/sanity.current_version @@ -0,0 +1 @@ +us-docker.pkg.dev/grpc-testing/testing-images-public/sanity:bdca9dc08b4c765efc427cc6d9204005799dda34@sha256:189e07d8503aa15344e3c8f565783659c3e2edc5b8ca455ec427de1e29ef4504
\ No newline at end of file diff --git a/grpc/tools/dockerfile/test/sanity/Dockerfile b/grpc/tools/dockerfile/test/sanity/Dockerfile index e129bf00..63cfa2a9 100644 --- a/grpc/tools/dockerfile/test/sanity/Dockerfile +++ b/grpc/tools/dockerfile/test/sanity/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM silkeh/clang:13 +FROM silkeh/clang:15-bullseye #================= # Basic C core dependencies @@ -53,10 +53,6 @@ RUN apt-get update && apt-get install -y \ zip \ && apt-get clean -#================= -# C++ dependencies -RUN apt-get update && apt-get -y install libc++-dev clang && apt-get clean - # Install Python 3.7 from source (and installed as a default python3) # (Bullseye comes with Python 3.9 which isn't supported by pytype yet) @@ -99,11 +95,14 @@ RUN python3 -m pip install --upgrade --ignore-installed PyYAML==5.4.1 --user # Install prerequisites for the clang-tidy script RUN apt-get update && apt-get install -y jq git +# Install prerequisites for the iwyu script +RUN apt-get update && apt-get install -y jq git cmake zlib1g-dev libtinfo-dev libclang-15-dev && apt-get clean + #======================== # Bazel installation # Must be in sync with tools/bazel -ENV BAZEL_VERSION 4.2.1 +ENV BAZEL_VERSION 6.1.2 # The correct bazel version is already preinstalled, no need to use //tools/bazel wrapper. ENV DISABLE_BAZEL_WRAPPER 1 @@ -127,6 +126,12 @@ RUN wget https://github.com/bazelbuild/buildtools/releases/download/0.29.0/build RUN chmod +x buildifier RUN mv buildifier /usr/local/bin +#================= +# Setup git to access working directory across docker boundary + +RUN git config --global --add safe.directory /var/local/jenkins/grpc +RUN git config --global protocol.file.allow always + # Define the default command. CMD ["bash"] |