Merge github.com:grpc/grpc into footprints-on-the-sands-of-time

pull/2289/head
Craig Tiller 10 years ago
commit 75105868f6
  1. 6
      tools/dockerfile/grpc_java/Dockerfile
  2. 27
      tools/dockerfile/grpc_java_android/Dockerfile
  3. 10
      tools/dockerfile/grpc_java_android/README.md
  4. 17
      tools/dockerfile/grpc_java_base/Dockerfile

@ -30,10 +30,8 @@
# Dockerfile for the gRPC Java dev image # Dockerfile for the gRPC Java dev image
FROM grpc/java_base FROM grpc/java_base
RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git /var/local/git/grpc-java 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 && \ cd /var/local/git/grpc-java && \
mvn -pl codec-http2 -am -DskipTests install clean
RUN cd /var/local/git/grpc-java && \
./gradlew :grpc-interop-testing:installDist -PskipCodegen=true ./gradlew :grpc-interop-testing:installDist -PskipCodegen=true
# Add a service_account directory containing the auth creds file # Add a service_account directory containing the auth creds file

@ -43,27 +43,20 @@ ENV PATH $PATH:$ANDROID_HOME/platform-tools
# Some old Docker versions consider '/' as HOME # Some old Docker versions consider '/' as HOME
ENV HOME /root ENV HOME /root
# Update sdk for android 5.1 (API level 22) # 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,addon-google_apis-google-22,addon-google_apis-google-21,addon-google_apis-google-19,extra-android-m2repository,extra-google-m2repository --no-ui --force 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 # 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 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 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 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. # 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 && \ RUN git clone --depth 1 https://github.com/grpc/grpc-java.git /var/local/git/grpc-java && \
cd /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 && \ ./gradlew grpc-core:install grpc-stub:install grpc-okhttp:install grpc-protobuf-nano:install grpc-compiler:install
rm -r "$(pwd)"
# Pull gRPC Android integration test App # Config android sdk for gradle and build apk to trigger download of needed Maven and Gradle artifacts.
RUN git clone --depth 1 https://github.com/madongfly/grpc-android-test.git /var/local/git/grpc-android-test RUN cd /var/local/git/grpc-java/android-interop-testing && echo "sdk.dir=/usr/local/android-sdk-linux" > local.properties && \
../gradlew assembleDebug
# 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

@ -15,23 +15,23 @@ Usage
Start the emulator in a detached container, the argument is the name of the AVD you want to start: 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: 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: 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: Trigger the integration test:
``` ```
$ sudo docker exec grpc_android_test /var/local/git/grpc-android-test/run-test.sh -e server_host <hostname or ip address> -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 <hostname or ip address> -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: You can also use the android/adb cammands to get more info, such as:

@ -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/ 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 JAVA_HOME /usr/lib/jvm/java-8-oracle
ENV M2_HOME /var/local/apache-maven-3.2.1 ENV PATH $PATH:$JAVA_HOME/bin
ENV PATH $PATH:$JAVA_HOME/bin:$M2_HOME/bin
ENV LD_LIBRARY_PATH /usr/local/lib
# Trigger download of as many Maven and Gradle artifacts as possible. We don't build grpc-java # Trigger download of as many Gradle artifacts as possible.
# because we don't want to install netty
RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git && \ RUN git clone --recursive --depth 1 https://github.com/grpc/grpc-java.git && \
cd grpc-java/lib/netty && \ cd grpc-java && \
mvn -pl codec-http2 -am -DskipTests verify && \ ./gradlew build -PskipCodegen=true && \
cd ../.. && \
./gradlew && \
rm -r "$(pwd)" rm -r "$(pwd)"

Loading…
Cancel
Save