From cd74cfe49a5a1186ce32b520af313332170d09bf Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Thu, 15 Jun 2023 11:04:53 -0700 Subject: [PATCH] [Test] Made Android docker to have NDK & CMake installed (#33449) It is not uncommon for Android tests to fail due to an NDK download failure. To address this issue, the Android Docker image has been updated to include NDK and CMake. This will help to avoid download problem. I verified this works as intended to see the invocation log not having installation log for NDK and CMake such as ``` Checking the license for package NDK (Side by side) 25.1.8937393 in /opt/android-sdk/licenses License for package NDK (Side by side) 25.1.8937393 accepted. Preparing "Install NDK (Side by side) 25.1.8937393 (revision: 25.1.8937393)". "Install NDK (Side by side) 25.1.8937393 (revision: 25.1.8937393)" ready. Installing NDK (Side by side) 25.1.8937393 in /opt/android-sdk/ndk/25.1.8937393 "Install NDK (Side by side) 25.1.8937393 (revision: 25.1.8937393)" complete. "Install NDK (Side by side) 25.1.8937393 (revision: 25.1.8937393)" finished. Checking the license for package CMake 3.10.2.4988404 in /opt/android-sdk/licenses License for package CMake 3.10.2.4988404 accepted. Preparing "Install CMake 3.10.2.4988404 (revision: 3.10.2)". "Install CMake 3.10.2.4988404 (revision: 3.10.2)" ready. Installing CMake 3.10.2.4988404 in /opt/android-sdk/cmake/3.10.2.4988404 "Install CMake 3.10.2.4988404 (revision: 3.10.2)" complete. "Install CMake 3.10.2.4988404 (revision: 3.10.2)" finished. ``` --- .../tools/dockerfile/test/android_ndk/Dockerfile.template | 5 +++++ tools/dockerfile/test/android_ndk.current_version | 2 +- tools/dockerfile/test/android_ndk/Dockerfile | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/templates/tools/dockerfile/test/android_ndk/Dockerfile.template b/templates/tools/dockerfile/test/android_ndk/Dockerfile.template index 26aa36f727a..150db6f8996 100644 --- a/templates/tools/dockerfile/test/android_ndk/Dockerfile.template +++ b/templates/tools/dockerfile/test/android_ndk/Dockerfile.template @@ -38,6 +38,11 @@ ENV ANDROID_HOME /opt/android-sdk RUN yes | $ANDROID_SDK_PATH/tools/bin/sdkmanager --licenses # accept all licenses + # Install Android NDK & CMake + # This is not required but desirable to reduce the time to download and the chance of download failure. + RUN mkdir -p ~/.android && touch ~/.android/repositories.cfg + RUN $ANDROID_SDK_PATH/tools/bin/sdkmanager 'ndk;25.1.8937393' 'cmake;3.10.2.4988404' + # 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 && ${'\\'} diff --git a/tools/dockerfile/test/android_ndk.current_version b/tools/dockerfile/test/android_ndk.current_version index dbdacb00563..2dd597c78da 100644 --- a/tools/dockerfile/test/android_ndk.current_version +++ b/tools/dockerfile/test/android_ndk.current_version @@ -1 +1 @@ -us-docker.pkg.dev/grpc-testing/testing-images-public/android_ndk:47e2befd3ceab97fa3e8ad5b8499b684380d624d@sha256:256ff2bb8fd6c6921cd7653f79fa495669c6466f78df96f71867f89f6d487ff3 \ No newline at end of file +us-docker.pkg.dev/grpc-testing/testing-images-public/android_ndk:b21742719ae22d6ac607d98b4a8d794cebe68542@sha256:2bddf36ae504968b35f97e4a6c9b74864473689e84049675c30afb70f868d897 \ No newline at end of file diff --git a/tools/dockerfile/test/android_ndk/Dockerfile b/tools/dockerfile/test/android_ndk/Dockerfile index 4be2803dc71..83e6cc79c1a 100644 --- a/tools/dockerfile/test/android_ndk/Dockerfile +++ b/tools/dockerfile/test/android_ndk/Dockerfile @@ -105,6 +105,11 @@ 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 Android NDK & CMake +# This is not required but desirable to reduce the time to download and the chance of download failure. +RUN mkdir -p ~/.android && touch ~/.android/repositories.cfg +RUN $ANDROID_SDK_PATH/tools/bin/sdkmanager 'ndk;25.1.8937393' 'cmake;3.10.2.4988404' + # 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 && \