diff options
author | gjoranv <gv@yahoo-inc.com> | 2017-07-11 15:08:16 +0200 |
---|---|---|
committer | gjoranv <gv@yahoo-inc.com> | 2017-07-18 13:44:32 +0200 |
commit | 8cb4dbe06e9e8200a1dc7123cba16a1fdb405863 (patch) | |
tree | a529ff32731e703a874f8cb402abcadd2d173525 /docker | |
parent | a264dd913e939fbc375fb962ca18c553f305f1fd (diff) |
Run c++ and java build/test in parallel.
Diffstat (limited to 'docker')
-rwxr-xr-x | docker/ci/vespa-ci-internal.sh | 42 |
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} |