From bce7190631d7aadf1ec9df417d8553c0198e6e1c Mon Sep 17 00:00:00 2001 From: Xudong Ma Date: Wed, 8 Jul 2015 15:17:46 -0700 Subject: [PATCH 1/2] Update dockerfile of gRpc Android interop test to use the code inside grpc-java repository. --- tools/dockerfile/grpc_java_android/Dockerfile | 27 +++++++------------ tools/dockerfile/grpc_java_android/README.md | 10 +++---- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/tools/dockerfile/grpc_java_android/Dockerfile b/tools/dockerfile/grpc_java_android/Dockerfile index 2dc2202e9d1..8df07077580 100644 --- a/tools/dockerfile/grpc_java_android/Dockerfile +++ b/tools/dockerfile/grpc_java_android/Dockerfile @@ -43,27 +43,20 @@ ENV PATH $PATH:$ANDROID_HOME/platform-tools # Some old Docker versions consider '/' as HOME ENV HOME /root -# Update sdk for android 5.1 (API level 22) -RUN echo y | android update sdk --all --filter platform-tools,build-tools-22.0.1,sys-img-armeabi-v7a-addon-google_apis-google-22,sys-img-armeabi-v7a-addon-google_apis-google-21,sys-img-armeabi-v7a-android-19,addon-google_apis-google-22,addon-google_apis-google-21,addon-google_apis-google-19,extra-android-m2repository,extra-google-m2repository --no-ui --force +# Update sdk for android API level 19 (4.4), 21 (5.0), 22 (5.1). +RUN echo y | android update sdk --all --filter platform-tools,build-tools-22.0.1,sys-img-armeabi-v7a-addon-google_apis-google-22,sys-img-armeabi-v7a-addon-google_apis-google-21,sys-img-armeabi-v7a-android-19,android-22,android-21,android-19,addon-google_apis-google-22,addon-google_apis-google-21,addon-google_apis-google-19,extra-android-m2repository,extra-google-m2repository --no-ui --force -# Create an AVD with API level 22 -RUN echo no | android create avd --force -n avd-google-api-22 -t "Google Inc.:Google APIs:22" --abi google_apis/armeabi-v7a -RUN echo no | android create avd --force -n avd-google-api-21 -t "Google Inc.:Google APIs:21" --abi google_apis/armeabi-v7a -RUN echo no | android create avd --force -n avd-google-api-19 -t "Google Inc.:Google APIs:19" --abi default/armeabi-v7a +# Create AVDs with API level 19,21,22 +RUN echo no | android create avd --force -n avd-google-api-22 -t "Google Inc.:Google APIs:22" --abi google_apis/armeabi-v7a && \ + echo no | android create avd --force -n avd-google-api-21 -t "Google Inc.:Google APIs:21" --abi google_apis/armeabi-v7a && \ + echo no | android create avd --force -n avd-google-api-19 -t "Google Inc.:Google APIs:19" --abi default/armeabi-v7a # Pull gRPC Java and trigger download of needed Maven and Gradle artifacts. RUN git clone --depth 1 https://github.com/grpc/grpc-java.git /var/local/git/grpc-java && \ cd /var/local/git/grpc-java && \ - ./gradlew grpc-core:install grpc-stub:install grpc-okhttp:install grpc-protobuf-nano:install && \ - rm -r "$(pwd)" + ./gradlew grpc-core:install grpc-stub:install grpc-okhttp:install grpc-protobuf-nano:install grpc-compiler:install -# Pull gRPC Android integration test App -RUN git clone --depth 1 https://github.com/madongfly/grpc-android-test.git /var/local/git/grpc-android-test - -# Config android sdk for gradle -RUN cd /var/local/git/grpc-android-test && echo "sdk.dir=/usr/local/android-sdk-linux" > local.properties - -# Build apks to trigger download of needed Maven and Gradle artifacts. -RUN cd /var/local/git/grpc-android-test && ./gradlew assembleDebug -RUN cd /var/local/git/grpc-android-test && ./gradlew assembleDebugAndroidTest +# Config android sdk for gradle and build apk to trigger download of needed Maven and Gradle artifacts. +RUN cd /var/local/git/grpc-java/android-interop-testing && echo "sdk.dir=/usr/local/android-sdk-linux" > local.properties && \ + ../gradlew assembleDebug diff --git a/tools/dockerfile/grpc_java_android/README.md b/tools/dockerfile/grpc_java_android/README.md index b4c9645e6af..5c897cd779d 100644 --- a/tools/dockerfile/grpc_java_android/README.md +++ b/tools/dockerfile/grpc_java_android/README.md @@ -15,23 +15,23 @@ Usage Start the emulator in a detached container, the argument is the name of the AVD you want to start: ``` -$ sudo docker run --name=grpc_android_test -d grpc/android /var/local/git/grpc-android-test/start-emulator.sh avd-api-22 +$ sudo docker run --name=grpc_android_test -d grpc/android /var/local/git/grpc-java/android-interop-testing/start-emulator.sh avd-google-api-22 ``` You can use the following cammand to wait until the emulator is ready: ``` -$ sudo docker exec grpc_android_test /var/local/git/grpc-android-test/wait-for-emulator.sh +$ sudo docker exec grpc_android_test /var/local/git/grpc-java/android-interop-testing/wait-for-emulator.sh ``` When you want to update the apk, run: ``` -$ sudo docker exec grpc_android_test /var/local/git/grpc-android-test/update-apk.sh +$ sudo docker exec grpc_android_test bash -c "cd /var/local/git/grpc-java && git pull origin master && ./gradlew grpc-core:install grpc-stub:install grpc-okhttp:install grpc-protobuf-nano:install grpc-compiler:install && cd android-interop-testing && ../gradlew installDebug" ``` -It will pull the fresh code of gRpc Java and our integration test app from github, build and install it to the runing emulator (so you need to make sure there is a runing emulator). +It pulls the fresh code of gRpc Java and our interop test app from github, build and install it to the runing emulator (so you need to make sure there is a runing emulator). Trigger the integration test: ``` -$ sudo docker exec grpc_android_test /var/local/git/grpc-android-test/run-test.sh -e server_host -e server_port 8030 -e server_host_override foo.test.google.fr -e use_tls true -e use_test_ca true +$ sudo docker exec grpc_android_test adb -e shell am instrument -w -e server_host -e server_port 8030 -e server_host_override foo.test.google.fr -e use_tls true -e use_test_ca true -e test_case all io.grpc.android.integrationtest/.TesterInstrumentation ``` You can also use the android/adb cammands to get more info, such as: From c0944ddd197239f5c8717f12a3da17312be84485 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 8 Jul 2015 16:44:15 -0700 Subject: [PATCH 2/2] For Docker grpc_java, no longer build Netty In grpc/grpc-java#425 we will be removing the netty submodule. --- tools/dockerfile/grpc_java/Dockerfile | 6 ++---- tools/dockerfile/grpc_java_base/Dockerfile | 17 ++++------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/tools/dockerfile/grpc_java/Dockerfile b/tools/dockerfile/grpc_java/Dockerfile index 15fce276ba9..7b1fe563588 100644 --- a/tools/dockerfile/grpc_java/Dockerfile +++ b/tools/dockerfile/grpc_java/Dockerfile @@ -30,10 +30,8 @@ # Dockerfile for the gRPC Java dev image FROM grpc/java_base -RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git /var/local/git/grpc-java -RUN cd /var/local/git/grpc-java/lib/netty && \ - mvn -pl codec-http2 -am -DskipTests install clean -RUN cd /var/local/git/grpc-java && \ +RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git /var/local/git/grpc-java && \ + cd /var/local/git/grpc-java && \ ./gradlew :grpc-interop-testing:installDist -PskipCodegen=true # Add a service_account directory containing the auth creds file diff --git a/tools/dockerfile/grpc_java_base/Dockerfile b/tools/dockerfile/grpc_java_base/Dockerfile index 55fbe94eafe..7bf79c8e415 100644 --- a/tools/dockerfile/grpc_java_base/Dockerfile +++ b/tools/dockerfile/grpc_java_base/Dockerfile @@ -44,20 +44,11 @@ RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true && \ apt-get clean && rm -r /var/cache/oracle-jdk8-installer/ -# Install maven -RUN wget -O - http://mirror.olnevhost.net/pub/apache/maven/binaries/apache-maven-3.2.1-bin.tar.gz | \ - tar xz -C /var/local - ENV JAVA_HOME /usr/lib/jvm/java-8-oracle -ENV M2_HOME /var/local/apache-maven-3.2.1 -ENV PATH $PATH:$JAVA_HOME/bin:$M2_HOME/bin -ENV LD_LIBRARY_PATH /usr/local/lib +ENV PATH $PATH:$JAVA_HOME/bin -# Trigger download of as many Maven and Gradle artifacts as possible. We don't build grpc-java -# because we don't want to install netty +# Trigger download of as many Gradle artifacts as possible. RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git && \ - cd grpc-java/lib/netty && \ - mvn -pl codec-http2 -am -DskipTests verify && \ - cd ../.. && \ - ./gradlew && \ + cd grpc-java && \ + ./gradlew build -PskipCodegen=true && \ rm -r "$(pwd)"