aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Matt Kwong <mattkwong@google.com>2016-09-26 12:05:05 -0700
committerGravatar Matt Kwong <mattkwong@google.com>2016-09-28 16:55:15 -0700
commit5d0f24600ef9b985bef3aada69e2f5847467c53c (patch)
tree16a8a8445fde16a15e656ae56de365c992dbc321
parent46c7f574bd4a5298f09fd5d72924b93c355e357e (diff)
changed method to local clone submodules to using git submodule foreach from the local copy
-rwxr-xr-xtest/distrib/cpp/run_distrib_test.sh10
-rwxr-xr-xtools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh6
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_node/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_php/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_php7/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_python/build_interop.sh8
-rwxr-xr-xtools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_cxx/build_interop_stress.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_go/build_interop_stress.sh6
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_java/build_interop_stress.sh6
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_php/build_interop_stress.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh8
-rwxr-xr-xtools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh8
-rwxr-xr-xtools/run_tests/dockerize/docker_run.sh6
-rwxr-xr-xtools/run_tests/dockerize/docker_run_tests.sh6
21 files changed, 81 insertions, 79 deletions
diff --git a/test/distrib/cpp/run_distrib_test.sh b/test/distrib/cpp/run_distrib_test.sh
index 6b2e043491..4c5deeaaae 100755
--- a/test/distrib/cpp/run_distrib_test.sh
+++ b/test/distrib/cpp/run_distrib_test.sh
@@ -31,11 +31,13 @@
set -ex
git clone $EXTERNAL_GIT_ROOT
-cd grpc
-
# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk -v EXTERNAL_GIT_ROOT=$EXTERNAL_GIT_ROOT/ '{ system("git \
-submodule update --init --reference " EXTERNAL_GIT_ROOT$2 " " $2) }'
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
+
+
+cd grpc
cd third_party/protobuf && ./autogen.sh && \
./configure && make -j4 && make check && make install && ldconfig
diff --git a/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh b/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
index 4773a602a4..71306bfb67 100755
--- a/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
+++ b/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
@@ -32,13 +32,13 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# build grpc cpp plugin for generating grpc pb files
make grpc_cpp_plugin
diff --git a/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh
index 6a0b2ef060..8f7be9ba13 100755
--- a/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_csharp/build_interop.sh
@@ -33,15 +33,15 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# build C# interop client & server
tools/run_tests/run_tests.py -l csharp -c dbg --build_only
diff --git a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh
index c2bb64e84b..476b69b09a 100755
--- a/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_csharpcoreclr/build_interop.sh
@@ -33,15 +33,15 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# build C# interop client & server
tools/run_tests/run_tests.py -l csharp -c dbg --compiler coreclr --build_only
diff --git a/tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh
index 47380c8a12..0822ed3105 100755
--- a/tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_cxx/build_interop.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
make install-certs
# build C++ interop client & server
diff --git a/tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh
index 3adc839490..907ee6b364 100755
--- a/tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_http2/build_interop.sh
@@ -33,10 +33,10 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
-
# clone gRPC submodules, use data from locally cloned submodules where possible
-(cd /var/local/git/grpc/ && exec git submodule | awk '{ system("git submodule \
-update --init --reference ./../../jenkins/grpc/" $2 " " $2) }')
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
diff --git a/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
index 4b73bb56f8..30dc8a6704 100755
--- a/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# build Node interop client & server
npm install -g node-gyp
npm install --unsafe-perm --build-from-source
diff --git a/tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh
index 48a6444821..0fef66e512 100755
--- a/tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_php/build_interop.sh
@@ -33,16 +33,16 @@ set -ex
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
rvm --default use ruby-2.1
# gRPC core and protobuf need to be installed
diff --git a/tools/dockerfile/interoptest/grpc_interop_php7/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_php7/build_interop.sh
index c2348f4f66..5d891c6c0b 100755
--- a/tools/dockerfile/interoptest/grpc_interop_php7/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_php7/build_interop.sh
@@ -33,16 +33,16 @@ set -ex
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
rvm --default use ruby-2.1
# gRPC core and protobuf need to be installed
diff --git a/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh
index e85153f51a..4ffd2a63c3 100755
--- a/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_python/build_interop.sh
@@ -33,14 +33,14 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
tools/run_tests/run_tests.py -l python -c opt --build_only
diff --git a/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh
index e5edb5335c..68aa7a1643 100755
--- a/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
rvm --default use ruby-2.1
# build Ruby interop client and server
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
index 8492086080..7f2d587e59 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# Copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# Build C++ metrics client (to query the metrics from csharp stress client)
make metrics_client -j
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_cxx/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_cxx/build_interop_stress.sh
index 9ab7aa0727..7332a8c1bb 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_cxx/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_cxx/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
make install-certs
BUILD_TYPE=${BUILD_TYPE:=opt}
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_go/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_go/build_interop_stress.sh
index de8430d677..f0a54a4362 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_go/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_go/build_interop_stress.sh
@@ -39,10 +39,10 @@ git clone --recursive /var/local/jenkins/grpc-go src/google.golang.org/grpc
# Clone the 'grpc' repo. We just need this for the wrapper scripts under
# grpc/tools/gcp/stress_tests
git clone /var/local/jenkins/grpc /var/local/git/grpc
-
# clone gRPC submodules, use data from locally cloned submodules where possible
-(cd /var/local/git/grpc/ && exec git submodule | awk '{ system("git submodule \
-update --init --reference ./../../jenkins/grpc/" $2 " " $2) }')
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_java/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_java/build_interop_stress.sh
index ffffea18d2..dcd3a0644a 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_java/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_java/build_interop_stress.sh
@@ -37,10 +37,10 @@ git clone --recursive --depth 1 /var/local/jenkins/grpc-java /var/local/git/grpc
# grpc repo (for metrics client and for the stress test wrapper scripts)
git clone /var/local/jenkins/grpc /var/local/git/grpc
-
# clone gRPC submodules, use data from locally cloned submodules where possible
-(cd /var/local/git/grpc/ && exec git submodule | awk '{ system("git submodule \
-update --init --reference ./../../jenkins/grpc/" $2 " " $2) }')
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# Copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
index 4b73bb56f8..30dc8a6704 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
# build Node interop client & server
npm install -g node-gyp
npm install --unsafe-perm --build-from-source
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_php/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_php/build_interop_stress.sh
index 78bf32ce51..0f624bf321 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_php/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_php/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -ex
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
rvm --default use ruby-2.1
make install-certs
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
index 3f85a86803..57b916ca4d 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
tools/run_tests/run_tests.py -l python -c opt --build_only
# Build c++ interop client
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
index 09b6fb1e11..bb4d2fcd22 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
@@ -33,16 +33,16 @@ set -e
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
+# clone gRPC submodules, use data from locally cloned submodules where possible
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
# Copy service account keys if available
cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-git submodule | awk '{ system("git submodule update --init --reference \
-./../../jenkins/grpc/" $2 " " $2) }'
-
rvm --default use ruby-2.1
# Build Ruby interop client and server
diff --git a/tools/run_tests/dockerize/docker_run.sh b/tools/run_tests/dockerize/docker_run.sh
index e57ceaf0ac..d50ea81750 100755
--- a/tools/run_tests/dockerize/docker_run.sh
+++ b/tools/run_tests/dockerize/docker_run.sh
@@ -38,9 +38,9 @@ then
mkdir -p /var/local/git
git clone "$EXTERNAL_GIT_ROOT" /var/local/git/grpc
# clone gRPC submodules, use data from locally cloned submodules where possible
- (cd var/local/git/grpc && exec git submodule | awk -v \
- EXTERNAL_GIT_ROOT=$EXTERNAL_GIT_ROOT/ '{ system("git submodule update --init \
- --reference " EXTERNAL_GIT_ROOT$2 " " $2) }')
+ (cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+ && git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+ ${name}')
else
mkdir -p "/var/local/git/grpc/$RELATIVE_COPY_PATH"
cp -r "$EXTERNAL_GIT_ROOT/$RELATIVE_COPY_PATH"/* "/var/local/git/grpc/$RELATIVE_COPY_PATH"
diff --git a/tools/run_tests/dockerize/docker_run_tests.sh b/tools/run_tests/dockerize/docker_run_tests.sh
index a1e94b2952..41d93e444d 100755
--- a/tools/run_tests/dockerize/docker_run_tests.sh
+++ b/tools/run_tests/dockerize/docker_run_tests.sh
@@ -43,10 +43,10 @@ chown $(whoami) $XDG_CACHE_HOME
mkdir -p /var/local/git
git clone /var/local/jenkins/grpc /var/local/git/grpc
-
# clone gRPC submodules, use data from locally cloned submodules where possible
-(cd /var/local/git/grpc/ && exec git submodule | awk '{ system("git submodule \
-update --init --reference ./../../jenkins/grpc/" $2 " " $2) }')
+(cd /var/local/jenkins/grpc / && git submodule foreach 'cd /var/local/git/grpc \
+&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
+${name}')
mkdir -p reports