95 lines
1.8 KiB
Bash
Executable File
95 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ABORT="\033[31mAbort:\033[00m"
|
|
SUCCESS="\033[32mSuccess:\033[00m"
|
|
INFO="\033[33mInfo:\033[00m"
|
|
FAIL="\033[31mFail:\033[00m"
|
|
PASS="\033[32mPass:\033[00m"
|
|
|
|
BRANCH_NAME=$(git symbolic-ref -q --short HEAD)
|
|
|
|
ROOTDIR=$(pwd)
|
|
|
|
# Determine current platform
|
|
PLATFORM='unknown'
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
PLATFORM='MacOS'
|
|
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
|
PLATFORM='Linux'
|
|
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
|
|
PLATFORM='Windows'
|
|
fi
|
|
|
|
function build {
|
|
echo -e $INFO Building $1 \($2\)
|
|
#cmake --build build/$2 --target $1 > /dev/null
|
|
#output to commandline for debugging
|
|
cmake --build build/$2 --target $1
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo -e $PASS Building $1 \($2\) passed
|
|
else
|
|
echo -e $FAIL Building $1 \($2\) failed
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function build_type {
|
|
echo -e $INFO Starting with buildtype: $1
|
|
if [ "$PLATFORM" == "Windows" ]
|
|
then
|
|
echo -e $INFO Building the Sourcetrail VS Solution
|
|
cmake --build build/win32 --config $1
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo -e $FAIL At least one build or test failed, no push to $branch
|
|
exit 1
|
|
fi
|
|
else
|
|
build Sourcetrail $1
|
|
build Sourcetrail_test $1
|
|
run_tests $1
|
|
fi
|
|
}
|
|
|
|
function run_tests {
|
|
echo -e $INFO Run $1 Tests
|
|
|
|
cd bin/test
|
|
echo $1/Sourcetrail_test
|
|
../../build/$1/test/Sourcetrail_test
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo -e $PASS $1 Tests passed
|
|
else
|
|
echo -e $FAIL $1 Tests failed
|
|
exit 1
|
|
fi
|
|
cd $ROOTDIR
|
|
}
|
|
|
|
# testing before committing to a publish branch
|
|
if [[ ${BRANCH_NAME:0:9} == "_publish_" ]]
|
|
then
|
|
echo Try to publish
|
|
echo Run builds and test
|
|
echo This will take a while
|
|
build_type Release
|
|
echo -e $PASS All builds and tests passed
|
|
exit 0
|
|
fi
|
|
|
|
if [ -z $BRANCH_NAME ]
|
|
then
|
|
echo -e $ABORT "You are not on any branch."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $BRANCH_NAME == "master" ]
|
|
then
|
|
echo -e $ABORT "Committing to master is prohibited."
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|