85 lines
2.7 KiB
Bash
Executable File
85 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
quit_on_error() {
|
|
echo "Error on line $1, stopping build."
|
|
exit 1
|
|
}
|
|
|
|
list_dir() {
|
|
echo "listing directory $1 :"
|
|
ls -al $1
|
|
}
|
|
|
|
trap 'quit_on_error $LINENO' ERR
|
|
|
|
TRAVIS_BUILD_DIR=$1
|
|
CATEGORY=$2
|
|
TESTUSER=travis
|
|
|
|
echo "Build script starting with parameters TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR and CATEGORY=$CATEGORY"
|
|
|
|
# build duplicati
|
|
|
|
list_dir "${TRAVIS_BUILD_DIR}"/packages/
|
|
echo "travis_fold:start:build_duplicati"
|
|
msbuild /p:Configuration=Release Duplicati.sln
|
|
cp -r ./Duplicati/Server/webroot ./Duplicati/GUI/Duplicati.GUI.TrayIcon/bin/Release/webroot
|
|
echo "travis_fold:end:build_duplicati"
|
|
|
|
# download and extract testdata
|
|
echo "travis_fold:start:download_extract_testdata"
|
|
list_dir .
|
|
|
|
if [ ! -d ~/tmp ]; then mkdir ~/tmp; fi
|
|
if [ ! -d ~/download ]; then mkdir ~/download; fi
|
|
if [ ! -d ~/download/svn ]; then mkdir ~/download/svn; fi
|
|
if [ ! -d ~/download/bulk ]; then mkdir ~/download/bulk; fi
|
|
|
|
if [ "$CATEGORY" == "SVNData" ] || [ "$CATEGORY" == "SVNDataLong" ]; then
|
|
# test if zip file exists and contains no errors
|
|
unzip -t ~/download/svn/DSMCBE.zip &> /dev/null || \
|
|
wget --progress=dot:giga "https://s3.amazonaws.com/duplicati-test-file-hosting/DSMCBE.zip" -O ~/download/svn/DSMCBE.zip
|
|
list_dir ~/download/svn
|
|
fi
|
|
|
|
if [ "$CATEGORY" == "BulkNormal" ] || [ "$CATEGORY" == "BulkNoSize" ]; then
|
|
# test if zip file exists and contains no errors
|
|
unzip -t ~/download/bulk/data.zip &> /dev/null || \
|
|
wget --progress=dot:giga "https://s3.amazonaws.com/duplicati-test-file-hosting/data.zip" -O ~/download/bulk/data.zip
|
|
list_dir ~/download/bulk
|
|
fi
|
|
|
|
rm -rf ~/duplicati_testdata && mkdir ~/duplicati_testdata
|
|
|
|
if [ "$CATEGORY" == "SVNData" ] || [ "$CATEGORY" == "SVNDataLong" ]; then
|
|
mkdir ~/duplicati_testdata/DSMCBE
|
|
unzip -q ~/download/svn/DSMCBE.zip -d ~/duplicati_testdata/
|
|
list_dir ~/duplicati_testdata/DSMCBE
|
|
fi
|
|
|
|
if [ "$CATEGORY" == "BulkNormal" ] || [ "$CATEGORY" == "BulkNoSize" ]; then
|
|
mkdir ~/duplicati_testdata/data
|
|
unzip -q ~/download/bulk/data.zip -d ~/duplicati_testdata/
|
|
list_dir ~/duplicati_testdata/data
|
|
fi
|
|
|
|
chown -R $TESTUSER ~/duplicati_testdata/
|
|
chmod -R 755 ~/duplicati_testdata
|
|
echo "travis_fold:end:download_extract_testdata"
|
|
|
|
# run unit tests
|
|
echo "travis_fold:start:unit_test"
|
|
if [[ "$CATEGORY" != "GUI" ]]; then
|
|
mono ./testrunner/NUnit.ConsoleRunner.3.5.0/tools/nunit3-console.exe \
|
|
./Duplicati/UnitTest/bin/Release/Duplicati.UnitTest.dll --where:cat==$CATEGORY --workers=1
|
|
fi
|
|
echo "travis_fold:end:unit_test"
|
|
|
|
# start server and run gui tests
|
|
echo "travis_fold:start:gui_unit_test"
|
|
mono ./Duplicati/GUI/Duplicati.GUI.TrayIcon/bin/Release/Duplicati.Server.exe &
|
|
if [[ "$CATEGORY" == "GUI" ]]; then
|
|
python guiTests/guiTest.py
|
|
fi
|
|
echo "travis_fold:end:gui_unit_test"
|