aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-04-22 16:41:51 -0700
committerGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-04-22 16:41:51 -0700
commit5a2ab90f6ed02ad3dd777ad548079900a2a27774 (patch)
treeaab581a0a095c3aeb2ea9fe1b1dfdf24288faf43 /tools
parent3608a7bd0ca9118478817d63e2062206ea3b599f (diff)
parent7451cf6ad02203c910bdbe7c80057772f49791d4 (diff)
Merge pull request #1317 from donnadionne/private_build
Scripts to build java and cxx docker images from local (uncommitted) cod...
Diffstat (limited to 'tools')
-rwxr-xr-xtools/dockerfile/grpc_cxx/build.sh14
-rwxr-xr-xtools/dockerfile/grpc_java/build.sh9
-rwxr-xr-xtools/gce_setup/private_build_and_test.sh61
3 files changed, 84 insertions, 0 deletions
diff --git a/tools/dockerfile/grpc_cxx/build.sh b/tools/dockerfile/grpc_cxx/build.sh
new file mode 100755
index 0000000000..8a9e95ccb8
--- /dev/null
+++ b/tools/dockerfile/grpc_cxx/build.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+rm -rf /var/local/git
+cp -R /var/local/git-clone /var/local/git
+
+cd /var/local/git/grpc/third_party/protobuf && \
+ ./autogen.sh && \
+ ./configure --prefix=/usr && \
+ make -j12 && make check && make install && make clean
+
+cd /var/local/git/grpc && ls \
+ && make clean \
+ && make gens/test/cpp/util/messages.pb.cc \
+ && make interop_client \
+ && make interop_server
diff --git a/tools/dockerfile/grpc_java/build.sh b/tools/dockerfile/grpc_java/build.sh
new file mode 100755
index 0000000000..04212ceec2
--- /dev/null
+++ b/tools/dockerfile/grpc_java/build.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+rm -rf /var/local/git
+cp -R /var/local/git-clone /var/local/git
+cd /var/local/git/grpc-java/lib/netty && \
+ mvn -pl codec-http2 -am -DskipTests install clean
+cd /var/local/git/grpc-java && \
+ ./gradlew build
+
+echo 'build finished'
diff --git a/tools/gce_setup/private_build_and_test.sh b/tools/gce_setup/private_build_and_test.sh
new file mode 100755
index 0000000000..9c5c347a30
--- /dev/null
+++ b/tools/gce_setup/private_build_and_test.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# This script has to be run from the same directory as grpc_docker.sh and after grpc_docker.sh is sourced
+#
+# Sample Usage:
+# ===============================
+# ./private_build_and_test.sh [language] [environment: interop|cloud] [test case]
+# [git base directory] [server name in interop environment]
+# sh private_build_and_test.sh java interop large_unary /usr/local/google/home/donnadionne/grpc-git grpc-docker-server1
+# sh private_build_and_test.sh java cloud large_unary /usr/local/google/home/donnadionne/grpc-git
+# ===============================
+
+# Arguments
+LANGUAGE=$1
+ENV=$2
+TEST=$3
+GIT=$4
+PROJECT=${5:-"stoked-keyword-656"}
+ZONE=${6:-"asia-east1-a"}
+CLIENT=${7:-"grpc-docker-testclients1"}
+SERVER=${8:-"grpc-docker-server"}
+
+current_time=$(date "+%Y-%m-%d-%H-%M-%S")
+result_file_name=private_result.$current_time.txt
+
+sudo docker run --name="private_images" -v $GIT:/var/local/git-clone grpc/$LANGUAGE /var/local/git-clone/grpc/tools/dockerfile/grpc_$LANGUAGE/build.sh
+
+sudo docker commit -m "private image" -a $USER private_images grpc/private_images
+
+sudo docker tag -f grpc/private_images 0.0.0.0:5000/grpc/private_images
+
+sudo docker push 0.0.0.0:5000/grpc/private_images
+
+sudo docker rmi -f grpc/private_images
+
+sudo docker rm private_images
+
+gcloud compute --project $PROJECT ssh --zone $ZONE $CLIENT --command "sudo docker pull 0.0.0.0:5000/grpc/private_images"
+
+gcloud compute --project $PROJECT ssh --zone $ZONE $CLIENT --command "sudo docker tag 0.0.0.0:5000/grpc/private_images grpc/$LANGUAGE"
+
+source grpc_docker.sh
+
+if [ $ENV == 'interop' ]
+then
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER cxx
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER java
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER go
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER ruby
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER node
+ grpc_interop_test $TEST $CLIENT $LANGUAGE $SERVER python
+else
+ if [ $ENV == 'cloud' ]
+ then
+ grpc_cloud_prod_test $TEST $CLIENT $LANGUAGE > /tmp/$result_file_name 2>&1
+ gsutil cp /tmp/$result_file_name gs://$PROJECT-output/private_result/$result_file_name
+ else
+ grpc_cloud_prod_auth_test $TEST $CLIENT $LANGUAGE
+ fi
+fi
+