From 4bb359f06796cfd93374b2ed6d2c7d07ff86749c Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Sat, 10 Jul 2021 21:58:33 +0100 Subject: Update build script names to be more intuitive. See: https://github.com/cuberite/cuberite/commit/e77a4ab46deb63655037132ee4af7b9612890ee0 --- cibuild.sh | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 cibuild.sh (limited to 'cibuild.sh') diff --git a/cibuild.sh b/cibuild.sh new file mode 100755 index 000000000..cd30cda0a --- /dev/null +++ b/cibuild.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +set -e + +export CUBERITE_BUILD_SERIES_NAME="CI $CC $CI_CUBERITE_BUILD_TYPE" +export CUBERITE_BUILD_ID=$CI_JOB_NUMBER +export CUBERITE_BUILD_DATETIME=`date` + +# Use ccache if available +if [ `which ccache` ]; then + # Re-run compile on pre-processed sources on cache miss + # "It's slower actually, but clang builds fail without it." + export CCACHE_CPP2=true + + # Tell CMake of ccache's existence + CACHE_ARGS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + + echo "Using ccache installed at $(which ccache)" + ccache --max-size=1G + ccache --zero-stats +fi + +workdir="$CC"_"$CI_CUBERITE_BUILD_TYPE" +mkdir "$workdir" +cd "$workdir" + +# Work around a Clang + ccache issue with failing builds by disabling +# precompiled headers. Turn off LTO for faster build speeds +cmake .. -DCMAKE_BUILD_TYPE=${CI_CUBERITE_BUILD_TYPE} \ + -DBUILD_TOOLS=Yes \ + -DPRECOMPILE_HEADERS=No \ + -DSELF_TEST=Yes \ + -DUNITY_BUILDS=${CI_CUBERITE_UNITY_BUILDS-Yes} \ + -DWHOLE_PROGRAM_OPTIMISATION=No \ + ${CACHE_ARGS}; + +echo "Building..." +cmake --build . --parallel 3; + +if [ `which ccache` ]; then + echo "Built with ccache, outputting cache stats..." + ccache --show-stats +fi + +echo "Testing..." +ctest --output-on-failure --parallel 2; + +cd Server/; +touch apiCheckFailed.flag +if [ "$CI_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 -- cgit v1.2.3