X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/061b3a73449ac71c9191b2515abd0622bf6664b2..9a01538f6933774c3dc6816482324b61efa9cdaf:/tools/jenkins/build.sh diff --git a/tools/jenkins/build.sh b/tools/jenkins/build.sh index 12d967ec93..8abe068c62 100755 --- a/tools/jenkins/build.sh +++ b/tools/jenkins/build.sh @@ -5,20 +5,23 @@ # See https://ci.inria.fr/simgrid/job/SimGrid/configure # See https://ci.inria.fr/simgrid/job/Simgrid-Windows/configure -set -e - # ensure that the locales are set, so that perl keeps its nerves export LC_ALL=C echo "XXXX Cleanup previous attempts. Remaining content of /tmp:" +rm -f /tmp/cc* +rm -f /tmp/*.so +rm -f /tmp/*.so.* rm -rf /tmp/simgrid-java* rm -rf /var/tmp/simgrid-java* rm -rf /tmp/jvm-* -find /builds/workspace/SimGrid/ -name "hs_err_pid*.log" -exec rm -f {} + +find $WORKSPACE -name "hs_err_pid*.log" -exec rm -f {} + ls /tmp df -h echo "XXXX Let's go" +set -e + # Help older cmakes if [ -e /usr/lib/jvm/java-7-openjdk-amd64 ] ; then @@ -31,7 +34,7 @@ die () { shift [ $# -gt 0 ] || set -- "Error - Halting" echo "$@" >&2 - exit $status + exit "$status" } # Get an ON/OFF string from a command: @@ -103,11 +106,11 @@ build_mode="$1" echo "Build mode $build_mode on $(uname -np)" >&2 case "$build_mode" in "Debug") - INSTALL="/builds/simgrid_install" + INSTALL="$HOME/simgrid_install" ;; "ModelChecker") - INSTALL="/builds/mc_simgrid_install" + INSTALL="$HOME/mc_simgrid_install" ;; "DynamicAnalysis") @@ -134,44 +137,55 @@ ulimit -c 0 || true echo "XX" echo "XX Get out of the tree" echo "XX" -if [ -d $WORKSPACE/build ] +if [ -d "$WORKSPACE"/build ] then # Windows cannot remove the directory if it's still used by the previous build - rm -rf $WORKSPACE/build || sleep 10 && rm -rf $WORKSPACE/build || sleep 10 && rm -rf $WORKSPACE/build + rm -rf "$WORKSPACE"/build || sleep 10 && rm -rf "$WORKSPACE"/build || sleep 10 && rm -rf "$WORKSPACE"/build fi -mkdir $WORKSPACE/build -cd $WORKSPACE/build +mkdir "$WORKSPACE"/build +cd "$WORKSPACE"/build have_NS3="no" -if dpkg -l libns3-dev 2>&1|grep -q "ii libns3-dev" ; then +if [ "$os" = "Debian" ] || [ "$os" = "Ubuntu" ] ; then + if dpkg --compare-versions "$(dpkg-query -f '${Version}' -W libns3-dev)" ge 3.28; then + have_NS3="yes" + fi +fi +if [ "$os" = "nixos" ] ; then have_NS3="yes" fi echo "XX have_NS3: ${have_NS3}" +SIMGRID_PYTHON_LIBDIR="" +if [ "$os" = "nixos" ] ; then + SIMGRID_PYTHON_LIBDIR="/home/ci/simgrid_install/lib64" +fi +echo "XX SIMGRID_PYTHON_LIBDIR: ${SIMGRID_PYTHON_LIBDIR}" + # This is for Windows: PATH="$WORKSPACE/build/lib:$PATH" echo "XX" echo "XX Build the archive out of the tree" -echo "XX pwd: "$(pwd) +echo "XX pwd: $(pwd)" echo "XX" -cmake -G"$GENERATOR" -Denable_documentation=OFF $WORKSPACE +cmake -G"$GENERATOR" -Denable_documentation=OFF "$WORKSPACE" make dist -j $NUMBER_OF_PROCESSORS SIMGRID_VERSION=$(cat VERSION) echo "XX" echo "XX Open the resulting archive" echo "XX" -gunzip ${SIMGRID_VERSION}.tar.gz -tar xf ${SIMGRID_VERSION}.tar -mkdir ${WORKSPACE}/build/${SIMGRID_VERSION}/build -cd ${WORKSPACE}/build/${SIMGRID_VERSION}/build +gunzip "${SIMGRID_VERSION}".tar.gz +tar xf "${SIMGRID_VERSION}".tar +mkdir "${WORKSPACE}"/build/"${SIMGRID_VERSION}"/build +cd "${WORKSPACE}"/build/"${SIMGRID_VERSION}"/build SRCFOLDER="${WORKSPACE}/build/${SIMGRID_VERSION}" echo "XX" echo "XX Configure and build SimGrid" -echo "XX pwd: "$(pwd) +echo "XX pwd: $(pwd)" echo "XX" set -x @@ -179,26 +193,39 @@ if cmake --version | grep -q 3\.11 ; then # -DCMAKE_DISABLE_SOURCE_CHANGES=ON is broken with java on CMake 3.11 # https://gitlab.kitware.com/cmake/cmake/issues/17933 MAY_DISABLE_SOURCE_CHANGE="" -else +else MAY_DISABLE_SOURCE_CHANGE="-DCMAKE_DISABLE_SOURCE_CHANGES=ON" fi +if [ "$os" = "CentOS" ]; then + if [ "$(ld -v | cut -d\ -f4 | cut -c1-4)" = "2.30" ]; then + echo "Temporary disable LTO, believed to be broken on this system." + MAY_DISABLE_LTO=-Denable_lto=OFF + else + MAY_DISABLE_LTO= + fi + if [ "$(rpm -q eigen3-devel --qf '%{VERSION}')" = "3.3.4" ]; then + echo "Temporary avoid build error seen with eigen3 version 3.3.4" + export CXXFLAGS=-Wno-error=int-in-bool-context + fi +fi + cmake -G"$GENERATOR" ${INSTALL:+-DCMAKE_INSTALL_PREFIX=$INSTALL} \ -Denable_debug=ON -Denable_documentation=OFF -Denable_coverage=OFF \ -Denable_model-checking=$(onoff test "$build_mode" = "ModelChecker") \ - -Denable_smpi_ISP_testsuite=$(onoff test "$build_mode" = "ModelChecker") \ + -Denable_smpi_MBI_testsuite=OFF \ -Denable_compile_optimizations=$(onoff test "$build_mode" != "DynamicAnalysis") \ -Denable_smpi_MPICH3_testsuite=$(onoff test "$build_mode" = "Debug") \ -Denable_mallocators=$(onoff test "$build_mode" != "DynamicAnalysis") \ -Denable_memcheck=$(onoff test "$build_mode" = "DynamicAnalysis") \ -Denable_compile_warnings=$(onoff test "$GENERATOR" != "MSYS Makefiles") -Denable_smpi=ON \ -Denable_ns3=$(onoff test "$have_NS3" = "yes" -a "$build_mode" = "Debug") \ - -Denable_jedule=OFF -Denable_lua=OFF ${MAY_DISABLE_SOURCE_CHANGE} \ + -DSIMGRID_PYTHON_LIBDIR=${SIMGRID_PYTHON_LIBDIR} \ + ${MAY_DISABLE_SOURCE_CHANGE} ${MAY_DISABLE_LTO} \ -Denable_java=$(onoff test "$build_mode" = "ModelChecker") \ -Denable_msg=$(onoff test "$build_mode" = "ModelChecker") \ -DLTO_EXTRA_FLAG="auto" \ - $SRCFOLDER -# -Denable_lua=$(onoff test "$build_mode" != "DynamicAnalysis") \ + "$SRCFOLDER" set +x make -j $NUMBER_OF_PROCESSORS VERBOSE=1 tests @@ -208,9 +235,9 @@ echo "XX Run the tests" echo "XX pwd: "$(pwd) echo "XX" -ctest -T test --output-on-failure --no-compress-output || true +ctest -T test --output-on-failure --no-compress-output -j $NUMBER_OF_PROCESSORS || true -if test -n "$INSTALL" && [ ${branch_name} = "origin/master" ] ; then +if test -n "$INSTALL" && [ "${branch_name}" = "origin/master" ] ; then echo "XX" echo "XX Test done. Install everything since it's a regular build, not on a Windows." echo "XX"