]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - util/travis/script.sh
Add a refresh button to the serverlist (#6957)
[dragonfireclient.git] / util / travis / script.sh
index 4f37d8f5aec94c97c4f62ff58f195a53b290327f..c68638db4acccdece550c11187b57d4707fb120b 100755 (executable)
@@ -1,27 +1,46 @@
 #!/bin/bash -e
+. util/travis/common.sh
+. util/travis/lint.sh
 
-if [[ $PLATFORM == "Unix" ]]; then
+needs_compile || exit 0
+
+if [[ "$LINT" == "1" ]]; then
+       # Lint with exit CI
+       perform_lint
+       exit 0
+fi
+
+set_linux_compiler_env
+
+if [[ ${PLATFORM} == "Unix" ]]; then
        mkdir -p travisbuild
        cd travisbuild || exit 1
+
        CMAKE_FLAGS=''
-       if [[ $COMPILER == "g++-6" ]]; then
-               export CC=gcc-6
-               export CXX=g++-6
-       fi
-       # Clang builds with FreeType fail on Travis
-       if [[ $CC == "clang" ]]; then
-               CMAKE_FLAGS+=' -DENABLE_FREETYPE=FALSE'
-       fi
-       if [[ $TRAVIS_OS_NAME == "osx" ]]; then
+
+       if [[ ${TRAVIS_OS_NAME} == "osx" ]]; then
                CMAKE_FLAGS+=' -DCUSTOM_GETTEXT_PATH=/usr/local/opt/gettext'
        fi
+
+       if [[ -n "${FREETYPE}" ]] && [[ "${FREETYPE}" == "0" ]]; then
+               CMAKE_FLAGS+=' -DENABLE_FREETYPE=0'
+       fi
+
        cmake -DCMAKE_BUILD_TYPE=Debug \
                -DRUN_IN_PLACE=TRUE \
                -DENABLE_GETTEXT=TRUE \
-               $CMAKE_FLAGS ..
+               -DBUILD_SERVER=TRUE \
+               ${CMAKE_FLAGS} ..
        make -j2
+
        echo "Running unit tests."
-       ../bin/minetest --run-unittests && exit 0
+       CMD="../bin/minetest --run-unittests"
+       if [[ "${VALGRIND}" == "1" ]]; then
+               valgrind --leak-check=full --leak-check-heuristics=all --undef-value-errors=no --error-exitcode=9 ${CMD} && exit 0
+       else
+               ${CMD} && exit 0
+       fi
+
 elif [[ $PLATFORM == Win* ]]; then
        [[ $CC == "clang" ]] && exit 1 # Not supposed to happen
        # We need to have our build directory outside of the minetest directory because