summaryrefslogtreecommitdiffstats
path: root/travisbuild.sh
diff options
context:
space:
mode:
Diffstat (limited to 'travisbuild.sh')
-rwxr-xr-xtravisbuild.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/travisbuild.sh b/travisbuild.sh
new file mode 100755
index 000000000..b4163f0a8
--- /dev/null
+++ b/travisbuild.sh
@@ -0,0 +1,47 @@
+ #!/usr/bin/env bash
+
+set -e
+
+export CUBERITE_BUILD_SERIES_NAME="Travis $CC $TRAVIS_CUBERITE_BUILD_TYPE"
+export CUBERITE_BUILD_ID=$TRAVIS_JOB_NUMBER
+export CUBERITE_BUILD_DATETIME=`date`
+
+# Use ccache if available
+if [ `which ccache` ]; then
+ export CCACHE_CPP2=true
+ CACHE_ARGS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
+ echo "Using ccache installed at $(which ccache)"
+fi
+
+cmake . -DBUILD_TOOLS=1 -DSELF_TEST=1 ${CACHE_ARGS};
+
+echo "Building..."
+cmake --build . -- -j 2;
+ctest -j 2 -V;
+
+echo "Testing..."
+
+cd Server/;
+touch apiCheckFailed.flag
+if [ "$TRAVIS_CUBERITE_BUILD_TYPE" != "COVERAGE" ]; then
+ ./Cuberite <<- EOF
+ load APIDump
+ apicheck
+ restart
+ stop
+ EOF
+ if [ -f ./NewlyUndocumented.lua ]; then
+ echo "ERROR: Newly undocumented API symbols found:"
+ cat ./NewlyUndocumented.lua
+ exit 1
+ fi
+ if [ -f ./DuplicateDocs.txt ]; then
+ echo "ERROR: API documentation has duplicate symbol warnings:"
+ cat ./DuplicateDocs.txt
+ exit 1
+ fi
+ if [ -f ./apiCheckFailed.flag ]; then
+ echo "ERROR: API check has failed with an unknown error"
+ exit 1
+ fi
+fi