X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/061b3a73449ac71c9191b2515abd0622bf6664b2..6c16c61daeab4491da3abfba8e1b657308f8dfd4:/tools/jenkins/build.sh diff --git a/tools/jenkins/build.sh b/tools/jenkins/build.sh index 12d967ec93..a9d9d64f6b 100755 --- a/tools/jenkins/build.sh +++ b/tools/jenkins/build.sh @@ -2,28 +2,29 @@ # This script is used by various build projects on Jenkins +case "$JENKINS_HOME" in +*-qualif) + echo "Build skipped on $JENKINS_HOME." + exit 0 + ;; +esac + # 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 -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 {} + +rm -f /tmp/cc* +rm -f /tmp/simgrid-mc-* +rm -f /tmp/*.so +rm -f /tmp/*.so.* ls /tmp df -h echo "XXXX Let's go" -# Help older cmakes -if [ -e /usr/lib/jvm/java-7-openjdk-amd64 ] ; -then - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 -fi +set -e # usage: die status message... die () { @@ -31,7 +32,7 @@ die () { shift [ $# -gt 0 ] || set -- "Error - Halting" echo "$@" >&2 - exit $status + exit "$status" } # Get an ON/OFF string from a command: @@ -103,11 +104,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,72 +135,87 @@ 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" ] ; 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 -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 - MAY_DISABLE_SOURCE_CHANGE="-DCMAKE_DISABLE_SOURCE_CHANGES=ON" +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 +fi + +if [ $NODE_NAME = "armv8" ]; then + echo "disable LTO, believed to be too heavy for this particular system" + MAY_DISABLE_LTO=-Denable_lto=OFF 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} \ - -Denable_java=$(onoff test "$build_mode" = "ModelChecker") \ - -Denable_msg=$(onoff test "$build_mode" = "ModelChecker") \ + -DSIMGRID_PYTHON_LIBDIR=${SIMGRID_PYTHON_LIBDIR} \ + -DCMAKE_DISABLE_SOURCE_CHANGES=ON ${MAY_DISABLE_LTO} \ -DLTO_EXTRA_FLAG="auto" \ - $SRCFOLDER -# -Denable_lua=$(onoff test "$build_mode" != "DynamicAnalysis") \ -set +x + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + "$SRCFOLDER" make -j $NUMBER_OF_PROCESSORS VERBOSE=1 tests @@ -208,9 +224,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"