aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-07-11 15:08:16 +0200
committergjoranv <gv@yahoo-inc.com>2017-07-18 13:44:32 +0200
commit8cb4dbe06e9e8200a1dc7123cba16a1fdb405863 (patch)
treea529ff32731e703a874f8cb402abcadd2d173525 /docker
parenta264dd913e939fbc375fb962ca18c553f305f1fd (diff)
Run c++ and java build/test in parallel.
Diffstat (limited to 'docker')
-rwxr-xr-xdocker/ci/vespa-ci-internal.sh42
1 files changed, 38 insertions, 4 deletions
diff --git a/docker/ci/vespa-ci-internal.sh b/docker/ci/vespa-ci-internal.sh
index 34827d282fa..ca19a59dfd7 100755
--- a/docker/ci/vespa-ci-internal.sh
+++ b/docker/ci/vespa-ci-internal.sh
@@ -1,6 +1,7 @@
#!/bin/bash
# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
set -e
+set -m
set -x
if [ $# -ne 1 ]; then
@@ -15,6 +16,18 @@ BUILD_DIR=~/build
NUM_CORES=$(nproc --all)
NUM_THREADS=$((${NUM_CORES} * 2))
+function build_java {
+ cd "${SOURCE_DIR}"
+ mvn install -T 2.0C -U -V -DskipTests=true -Dmaven.javadoc.skip=true
+ mvn install -nsu -T 2.0C -V &
+}
+
+function build_c {
+ cd "${BUILD_DIR}"
+ make -j ${NUM_THREADS}
+ ctest3 -j ${NUM_THREADS}
+}
+
mkdir "${SOURCE_DIR}"
mkdir "${BUILD_DIR}"
git clone --no-checkout --no-hardlinks file:///vespa "${SOURCE_DIR}"
@@ -24,8 +37,6 @@ source /opt/rh/devtoolset-6/enable || true
export MAVEN_OPTS="-Xms128m -Xmx512m"
sh ./bootstrap.sh full
-mvn install -T 2.0C -U -V -DskipTests=true -Dmaven.javadoc.skip=true
-mvn install -nsu -T 2.0C -V
cd "${BUILD_DIR}"
cmake3 -DCMAKE_INSTALL_PREFIX=/opt/vespa \
@@ -36,5 +47,28 @@ cmake3 -DCMAKE_INSTALL_PREFIX=/opt/vespa \
-DCMAKE_BUILD_RPATH=/opt/vespa/lib64 \
-DVALGRIND_UNIT_TESTS=no \
"${SOURCE_DIR}"
-make -j ${NUM_THREADS}
-ctest3 -j ${NUM_THREADS}
+
+pids=()
+
+# Java build and test
+build_java &
+pids+=($!)
+
+# C++ build and test
+build_c &
+pids+=($!)
+
+EXIT_CODE=0
+for pid in "${pids[@]}"; do
+ wait $pid || EXIT_CODE=$?
+ echo "$pid ${EXIT_CODE}"
+ if [[ "${EXIT_CODE}" != 0 ]]; then
+ echo STOPPING
+ break;
+ fi
+done
+
+# Kill any remaining process
+kill $(jobs -p) 2>/dev/null
+
+exit ${EXIT_CODE}