@@ -35,10 +35,24 @@ RETVAL=0
3535
3636pwd
3737
38+ reap_parallel_results () {
39+ local retval=0
40+ for failed in .logs/* .failed; do
41+ if [ -f " $failed " ]; then
42+ local pkg=$( basename " $failed " .failed)
43+ echo " --- FAILED: $pkg ---"
44+ cat " .logs/$pkg .log"
45+ retval=1
46+ fi
47+ done
48+ return $retval
49+ }
50+
51+
3852run_package_test () {
3953 local package_name=$1
4054 local package_path=" packages/${package_name} "
41-
55+
4256 # Declare local overrides to prevent bleeding into the next loop iteration
4357 local PROJECT_ID
4458 local GOOGLE_APPLICATION_CREDENTIALS
@@ -77,7 +91,8 @@ run_package_test() {
7791 export GOOGLE_CLOUD_PROJECT=" ${PROJECT_ID} "
7892
7993 gcloud auth activate-service-account --key-file=" $GOOGLE_APPLICATION_CREDENTIALS "
80- gcloud config set project " $PROJECT_ID "
94+ export CLOUDSDK_CORE_PROJECT=" ${PROJECT_ID} "
95+
8196
8297 # Run the actual test
8398 pushd " ${package_path} " > /dev/null
@@ -86,7 +101,7 @@ run_package_test() {
86101 local res=$?
87102 set -e
88103 popd > /dev/null
89-
104+
90105 return $res
91106}
92107
@@ -150,16 +165,12 @@ if [ -n "$PACKAGES_TO_TEST" ]; then
150165 mkdir -p .logs
151166 export -f run_package_test
152167 export system_test_script PROJECT_ROOT KOKORO_GFILE_DIR
153-
154- echo " $PACKAGES_TO_TEST " | tr ' ' ' \n' | awk ' NF' | xargs -P 8 -I {} bash -c ' run_package_test "{}" > ".logs/{}.log" 2>&1 || touch ".logs/{}.failed"'
155-
156- for failed in .logs/* .failed; do
157- if [ -f " $failed " ]; then
158- echo " --- FAILED: ${failed% .failed} ---"
159- cat " ${failed% .failed} .log"
160- RETVAL=1
161- fi
162- done
168+
169+ CONCURRENCY=${MAX_PARALLEL_TESTS:- 8}
170+
171+ printf ' %s\n' $PACKAGES_TO_TEST | xargs -P " $CONCURRENCY " -I {} bash -c ' run_package_test "{}" > ".logs/{}.log" 2>&1 || touch ".logs/{}.failed"'
172+
173+ reap_parallel_results || RETVAL=1
163174fi
164175
165176exit ${RETVAL}
0 commit comments