diff options
author | gjoranv <gv@yahoo-inc.com> | 2017-07-17 14:22:34 +0200 |
---|---|---|
committer | gjoranv <gv@yahoo-inc.com> | 2017-07-18 13:44:33 +0200 |
commit | f2eccf4676ac96b070140113703e26664d4654d7 (patch) | |
tree | 114a67805a3e3b48b20347a24ec11d667cfe9914 /docker | |
parent | 7b3cffc383a41ed4a040fdc6eb268d18ed906929 (diff) |
Send build output to separate log files
.. and copy them out of the docker container.
+ Move cmake3 to build_cpp function
+ Some bash fixes
Diffstat (limited to 'docker')
-rwxr-xr-x | docker/ci/vespa-ci-internal.sh | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/docker/ci/vespa-ci-internal.sh b/docker/ci/vespa-ci-internal.sh index 18cfa57aa76..f3e56410f98 100755 --- a/docker/ci/vespa-ci-internal.sh +++ b/docker/ci/vespa-ci-internal.sh @@ -13,23 +13,34 @@ fi GIT_COMMIT=$1 SOURCE_DIR=~/vespa BUILD_DIR=~/build +LOG_DIR=~/log NUM_CORES=$(nproc --all) NUM_THREADS=$((${NUM_CORES} * 2)) function build_java { cd "${SOURCE_DIR}" - mvn install -nsu -T 2.0C -V -DskipTests=true -Dmaven.javadoc.skip=true - mvn install -nsu -T 2.0C -V + mvn install -nsu -B -T 2.0C -V -DskipTests=true -Dmaven.javadoc.skip=true + mvn install -nsu -B -T 2.0C -V } -function build_c { +function build_cpp { cd "${BUILD_DIR}" + cmake3 -DCMAKE_INSTALL_PREFIX=/opt/vespa \ + -DJAVA_HOME=/usr/lib/jvm/java-openjdk \ + -DEXTRA_LINK_DIRECTORY="/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib64/llvm3.9/lib" \ + -DEXTRA_INCLUDE_DIRECTORY="/opt/vespa-boost/include;/opt/vespa-libtorrent/include;/opt/vespa-zookeeper-c-client/include;/opt/vespa-cppunit/include;/usr/include/llvm3.9" \ + -DCMAKE_INSTALL_RPATH="/opt/vespa/lib64;/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib/jvm/java-1.8.0/jre/lib/amd64/server;/usr/include/llvm3.9" \ + -DCMAKE_BUILD_RPATH=/opt/vespa/lib64 \ + -DVALGRIND_UNIT_TESTS=no \ + "${SOURCE_DIR}" make -j ${NUM_THREADS} ctest3 -j ${NUM_THREADS} } mkdir "${SOURCE_DIR}" mkdir "${BUILD_DIR}" +mkdir "${LOG_DIR}" + git clone --no-checkout --no-hardlinks file:///vespa "${SOURCE_DIR}" cd "${SOURCE_DIR}" git -c advice.detachedHead=false checkout ${GIT_COMMIT} @@ -38,37 +49,34 @@ source /opt/rh/devtoolset-6/enable || true export MAVEN_OPTS="-Xms128m -Xmx512m" sh ./bootstrap.sh full -cd "${BUILD_DIR}" -cmake3 -DCMAKE_INSTALL_PREFIX=/opt/vespa \ - -DJAVA_HOME=/usr/lib/jvm/java-openjdk \ - -DEXTRA_LINK_DIRECTORY="/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib64/llvm3.9/lib" \ - -DEXTRA_INCLUDE_DIRECTORY="/opt/vespa-boost/include;/opt/vespa-libtorrent/include;/opt/vespa-zookeeper-c-client/include;/opt/vespa-cppunit/include;/usr/include/llvm3.9" \ - -DCMAKE_INSTALL_RPATH="/opt/vespa/lib64;/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib/jvm/java-1.8.0/jre/lib/amd64/server;/usr/include/llvm3.9" \ - -DCMAKE_BUILD_RPATH=/opt/vespa/lib64 \ - -DVALGRIND_UNIT_TESTS=no \ - "${SOURCE_DIR}" - pids=() +set -o pipefail +TIMESTAMP=$(date +%Y-%m-%dT%H:%M:%S) # Java build and test -build_java & +# Should be waited for first, because it takes much shorter time than C++ build. +build_java 2>&1 | tee ${LOG_DIR}/java.log & pids+=($!) # C++ build and test -build_c & +build_cpp 2>&1 | tee ${LOG_DIR}/cpp.log & pids+=($!) EXIT_CODE=0 for pid in "${pids[@]}"; do wait $pid || EXIT_CODE=$? - echo "$pid ${EXIT_CODE}" + echo "$pid finished with status ${EXIT_CODE}" if [[ "${EXIT_CODE}" != 0 ]]; then - echo STOPPING + echo "Exiting and killing remaining jobs." break; fi done +set +o pipefail + +# Kill any remaining jobs, ignoring error when no jobs are running +kill $(jobs -p) 2>/dev/null || true -# Kill any remaining process -kill $(jobs -p) 2>/dev/null +cp ${LOG_DIR}/java.log /vespa/docker/vespa-ci-java-${TIMESTAMP}.log +cp ${LOG_DIR}/cpp.log /vespa/docker/vespa-ci-cpp-${TIMESTAMP}.log exit ${EXIT_CODE} |