aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-07-17 14:22:34 +0200
committergjoranv <gv@yahoo-inc.com>2017-07-18 13:44:33 +0200
commitf2eccf4676ac96b070140113703e26664d4654d7 (patch)
tree114a67805a3e3b48b20347a24ec11d667cfe9914 /docker
parent7b3cffc383a41ed4a040fdc6eb268d18ed906929 (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-xdocker/ci/vespa-ci-internal.sh46
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}