Commit e78538a8 authored by Jan Möbius's avatar Jan Möbius

Merge branch 'featureCIDebugConfiguration' into 'master'

Feature ci debug configuration

Closes #147

See merge request !321
parents eb751f8b 257bfb28
Pipeline #6693 failed with stages
in 74 minutes and 10 seconds
......@@ -38,6 +38,23 @@ gcc-c++11-Qt5.9.0:
paths:
- artifacts
debug-gcc-c++11-Qt5.9.0:
stage:
Build
variables:
COMPILER: "gcc"
LANGUAGE: "C++11"
QTVERSION: "QT5.9.0"
BUILDTYPE: "Debug"
GIT_SUBMODULE_STRATEGY: recursive
script: "CI/ci-linux-build.sh"
tags:
- Linux
artifacts:
expire_in: 1 week
paths:
- artifacts
clang-c++11-Qt5:
stage:
Build
......@@ -72,6 +89,24 @@ clang-c++11-Qt5.9.0:
paths:
- artifacts
debug-clang-c++11-Qt5.9.0:
stage:
Build
variables:
COMPILER: "clang"
LANGUAGE: "C++11"
QTVERSION: "QT5.9.0"
BUILDTYPE: "Debug"
GIT_SUBMODULE_STRATEGY: recursive
script: "CI/ci-linux-build.sh"
tags:
- Linux
- MultiThreads
artifacts:
expire_in: 1 week
paths:
- artifacts
test-gcc-c++11-Qt5:
stage:
Test
......@@ -87,7 +122,7 @@ test-gcc-c++11-Qt5:
- gcc-c++11-Qt5
artifacts:
paths:
- build-release-gcc-cpp11-qt5/Testing/Temporary/LastTest.log
- build-Release-gcc-cpp11-qt5/Testing/Temporary/LastTest.log
test-gcc-c++11-Qt5.9.0:
stage:
......@@ -104,7 +139,25 @@ test-gcc-c++11-Qt5.9.0:
- gcc-c++11-Qt5.9.0
artifacts:
paths:
- build-release-gcc-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
- build-Release-gcc-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
debug-test-gcc-c++11-Qt5.9.0:
stage:
Test
variables:
COMPILER: "gcc"
LANGUAGE: "C++11"
QTVERSION: "QT5.9.0"
BUILDTYPE: "Debug"
GIT_STRATEGY: none
script: "artifacts/CI/ci-linux-test.sh"
tags:
- Linux
dependencies:
- debug-gcc-c++11-Qt5.9.0
artifacts:
paths:
- build-Debug-gcc-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
test-clang-c++11-Qt5:
stage:
......@@ -122,7 +175,7 @@ test-clang-c++11-Qt5:
- clang-c++11-Qt5
artifacts:
paths:
- build-release-clang-cpp11-qt5/Testing/Temporary/LastTest.log
- build-Release-clang-cpp11-qt5/Testing/Temporary/LastTest.log
test-clang-c++11-Qt5.9.0:
stage:
......@@ -140,7 +193,26 @@ test-clang-c++11-Qt5.9.0:
- clang-c++11-Qt5.9.0
artifacts:
paths:
- build-release-clang-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
- build-Release-clang-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
debug-test-clang-c++11-Qt5.9.0:
stage:
Test
variables:
COMPILER: "clang"
LANGUAGE: "C++11"
QTVERSION: "QT5.9.0"
BUILDTYPE: "Debug"
GIT_STRATEGY: none
script: "artifacts/CI/ci-linux-test.sh"
tags:
- Linux
- MultiThreads
dependencies:
- debug-clang-c++11-Qt5.9.0
artifacts:
paths:
- build-Debug-clang-cpp11-qt5.9.0/Testing/Temporary/LastTest.log
cppcheck:
stage:
......@@ -499,8 +571,8 @@ Doc-publish:
dependencies:
artifacts:
paths:
- build-release/Doxygen-warning.log
- build-release/Doxygen-error.log
- build-Release/Doxygen-warning.log
- build-Release/Doxygen-error.log
......
......@@ -7,13 +7,14 @@ set -e
# COMPILER= gcc/clang
# LANGUAGE= C++98 / C++11
# QTVERSION= QT4/QT5
# BUILDTYPE= Debug / Release
#include ci options script
MY_DIR=$(dirname $(readlink -f $0))
source $MY_DIR/ci-linux-config.sh
echo "Building with path: build-release-$BUILDPATH"
echo "Building with path: $BUILDPATH"
echo "Full cmake options: $OPTIONS "
########################################
......@@ -28,13 +29,13 @@ git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData
#########################################
# Make release build folder
if [ ! -d build-release-$BUILDPATH ]; then
mkdir build-release-$BUILDPATH
if [ ! -d $BUILDPATH ]; then
mkdir $BUILDPATH
fi
cd build-release-$BUILDPATH
cd $BUILDPATH
cmake -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DSTL_VECTOR_CHECKS=ON $OPTIONS ../
cmake -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DSTL_VECTOR_CHECKS=ON $OPTIONS ../
#build it
make $MAKE_OPTIONS
......
......@@ -2,14 +2,25 @@
OPTIONS=""
MAKE_OPTIONS=""
BUILDPATH=""
BUILDPATH="build"
#set default Build type to Release
if [ "$BUILDTYPE" == "" ]; then
BUILDTYPE="Release"
fi
# set buildpath according to buildtype
BUILDPATH="$BUILDPATH-$BUILDTYPE"
#set CMake build Type
OPTIONS="-DCMAKE_BUILD_TYPE=$BUILDTYPE"
if [ "$COMPILER" == "gcc" ]; then
echo "Setting Compiler to GCC";
BUILDPATH="gcc"
BUILDPATH="$BUILDPATH-gcc"
# without icecc: no options required
OPTIONS="-DCMAKE_CXX_COMPILER=/usr/lib/icecc/bin/g++ -DCMAKE_C_COMPILER=/usr/lib/icecc/bin/gcc"
OPTIONS="$OPTIONS -DCMAKE_CXX_COMPILER=/usr/lib/icecc/bin/g++ -DCMAKE_C_COMPILER=/usr/lib/icecc/bin/gcc"
MAKE_OPTIONS="-j16"
export ICECC_CXX=/usr/bin/g++ ; export ICECC_CC=/usr/bin/gcc
......@@ -21,7 +32,7 @@ elif [ "$COMPILER" == "clang" ]; then
# OPTIONS="$OPTIONS -DCMAKE_CXX_COMPILER=/usr/lib/icecc/bin/g++ -DCMAKE_C_COMPILER=/usr/lib/icecc/bin/gcc -DGTEST_PREFIX=~/sw/gtest-1.7.0-clang/ "
# export ICECC_CXX=/usr/bin/clang++ ; export ICECC_CC=/usr/bin/clang
BUILDPATH="clang"
BUILDPATH="$BUILDPATH-clang"
MAKE_OPTIONS="-j6"
echo "Setting compiler to CLANG";
......
......@@ -7,6 +7,7 @@ set -e
# COMPILER= gcc/clang
# LANGUAGE= C++98 / C++11
# QTVERSION= QT4/QT5
# BUILDTYPE= Debug / Release
#include ci options script
MY_DIR=$(dirname $(readlink -f $0))
......@@ -27,7 +28,7 @@ git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData
#########################################
# Run tests
cd build-release-$BUILDPATH
cd $BUILDPATH
#clean old cmake cache as the path might have changed
find . -name "CMakeCache.txt" -type f -delete
......@@ -43,7 +44,7 @@ then
rm DartConfiguration.tcl
fi
cmake -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DSTL_VECTOR_CHECKS=ON $OPTIONS ../
cmake -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DSTL_VECTOR_CHECKS=ON $OPTIONS ../
#tell the location to the libs from build jobs
export LD_LIBRARY_PATH=$(pwd)/Build/lib:$LD_LIBRARY_PATH
......
#!/bin/bash
# Script abort on error
set -e
# Expected Settings via environment variables:
# COMPILER= gcc/clang
# LANGUAGE= C++98 / C++11
# QTVERSION= QT4/QT5
OPTIONS=""
MAKE_OPTIONS=""
BUILDPATH=""
if [ "$COMPILER" == "gcc" ]; then
echo "Building with GCC";
BUILDPATH="gcc"
# without icecc: no options required
OPTIONS="-DCMAKE_CXX_COMPILER=/usr/lib/icecc/bin/g++ -DCMAKE_C_COMPILER=/usr/lib/icecc/bin/gcc"
MAKE_OPTIONS="-j16"
export ICECC_CXX=/usr/bin/g++ ; export ICECC_CC=/usr/bin/gcc
elif [ "$COMPILER" == "clang" ]; then
OPTIONS="$OPTIONS -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DGTEST_PREFIX=~/sw/gtest-1.8.0-clang/ "
# Build options with icecc /not working due to strange symbol errors
# OPTIONS="$OPTIONS -DCMAKE_CXX_COMPILER=/usr/lib/icecc/bin/g++ -DCMAKE_C_COMPILER=/usr/lib/icecc/bin/gcc -DGTEST_PREFIX=~/sw/gtest-1.7.0-clang/ "
# export ICECC_CXX=/usr/bin/clang++ ; export ICECC_CC=/usr/bin/clang
BUILDPATH="clang"
MAKE_OPTIONS="-j6"
echo "Building with CLANG";
fi
if [ "$LANGUAGE" == "C++98" ]; then
echo "Building with C++98";
BUILDPATH="$BUILDPATH-cpp98"
elif [ "$LANGUAGE" == "C++11" ]; then
echo "Building with C++11";
OPTIONS="$OPTIONS -DCMAKE_CXX_FLAGS='-std=c++11' "
BUILDPATH="$BUILDPATH-cpp11"
fi
if [ "$QTVERSION" == "QT4" ]; then
echo "Building with QT4";
OPTIONS="$OPTIONS -DFORCE_QT4=TRUE "
BUILDPATH="$BUILDPATH-qt4"
elif [ "$QTVERSION" == "QT5" ]; then
echo "Building with QT5";
BUILDPATH="$BUILDPATH-qt5"
OPTIONS="$OPTIONS -DFORCE_QT4=FALSE -DQWT6_INCLUDE_DIR=~/sw/qwt-6.1.2-qt5/include -DQWT6_LIBRARY_DIR=~/sw/qwt-6.1.2-qt5/lib -DQWT6_LIBRARY=~/sw/qwt-6.1.2-qt5/lib/libqwt-qt5.so -DQT5_INSTALL_PATH=~/sw/qt-5.5.1/5.5/gcc_64"
export LD_LIBRARY_PATH=~/sw/qt-5.5.1/5.5/gcc_64/lib
elif [ "$QTVERSION" == "QT5.9.0" ]; then
echo "Building with QT5.9.0";
BUILDPATH="$BUILDPATH-qt5.9.0"
OPTIONS="$OPTIONS -DFORCE_QT4=FALSE -DQWT6_INCLUDE_DIR=~/sw/qwt-6.1.3-qt5.9.0/include -DQWT6_LIBRARY_DIR=~/sw/qwt-6.1.3-qt5.9.0/lib -DQWT6_LIBRARY=~/sw/qwt-6.1.3-qt5.9.0/lib/libqwt.so -DQT5_INSTALL_PATH=~/sw/Qt/5.9/gcc_64"
fi
echo "Building with path: build-release-$BUILDPATH"
echo "Full cmake options: $OPTIONS "
########################################
# Build daemon cleanup code
########################################
########################################
# Fetch submodules
########################################
########################################
# Show information for easier debugging
########################################
########################################
# Fetch test data
########################################
rm -rf TestData
git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData
#########################################
# Build Release version and Unittests
#########################################
# Make release build folder
if [ ! -d build-release-$BUILDPATH ]; then
mkdir build-release-$BUILDPATH
fi
cd build-release-$BUILDPATH
cmake -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DSTL_VECTOR_CHECKS=ON $OPTIONS ../
#build it
make $MAKE_OPTIONS
#########################################
# Run Release Unittests
#########################################
# Run tests
cd tests
bash run_tests.sh
cd ..
########################################
# Build daemon cleanup code
########################################
########################################
# Fetch submodules
########################################
#git submodule init
#git submodule update --remote
########################################
# Show information for easier debugging
########################################
########################################
# Fetch test data
########################################
rm -rf TestData
git clone git@roosevelt:moebius/OpenFlipper-Test-Data.git TestData
########################################
# Build
########################################
if [ ! -d build-release ]; then
mkdir build-release
fi
cd build-release
# Build without ports to avoid qt4 collision
/opt/local/bin/cmake ../ -DCMAKE_CXX_FLAGS='-std=c++11' -DQWT6_INCLUDE_DIR=/Users/jenkins/sw/qwt-6.1.2-Qt5-installed/lib/qwt.framework/Headers -DQWT6_LIBRARY=/Users/jenkins/sw/qwt-6.1.2-Qt5-installed/lib/qwt.framework -DQT5_INSTALL_PATH=/Qt/Qt5.5.1/5.5/clang_64 -DGLEW_INCLUDE_DIR=/Users/jenkins/sw/glew-1.10.0-installed/include/ -DGLEW_LIBRARY=/Users/jenkins/sw/glew-1.10.0-installed/lib/libGLEW.dylib
make
# Required for the tests to build, if a package was generated
make fixbundle
########################################
# Test
########################################
# Run tests
cd tests
bash run_tests.sh
cd ..
########################################
# Doc
########################################
make doc >> ../Doxygen-warning.log 2> ../Doxygen-error.log
########################################
# Package
########################################
rm -f *.dmg
make OpenFlipper_package
mv *.dmg OpenFlipper-Free-GIT-$CI_BUILD_REF-QT5.5.1-CPP11.dmg
@echo off
::########################################
::# Fetch test data
::########################################
rmdir /Q /S TestData
:: clone libraries git (set env variable to GIT_SSH_COMMAND maybe use setx once as this key won't change)
set GIT_SSH_COMMAND=ssh -i E:\\\gitlab\\\id_rsa
git clone git@roosevelt.informatik.rwth-aachen.de:moebius/OpenFlipper-Test-Data.git TestData
mkdir rel
cd rel
del *.exe
:: use 4 threads for parallel compilation of the project
set CL=/MP4
:: determine VS version and set variables
if "%COMPILER%" == "VS2012" (
set QT_COMPILERPREFIX=msvc2012
set VS_COMPILERVERSION_LONG=11.0
set VS_COMPILERVERSION_SHORT=11
set VS_EDITION_YEAR=2012
)
if "%COMPILER%" == "VS2013" (
set QT_COMPILERPREFIX=msvc2013
set VS_COMPILERVERSION_LONG=12.0
set VS_COMPILERVERSION_SHORT=12
set VS_EDITION_YEAR=2013
)
if "%COMPILER%" == "VS2015" (
set QT_COMPILERPREFIX=msvc2015
set VS_COMPILERVERSION_LONG=14.0
set VS_COMPILERVERSION_SHORT=14
set VS_EDITION_YEAR=2015
)
set BUILD_PLATFORM=%COMPILER%
:: determine architecture and set variables
if "%ARCHITECTURE%" == "x64" (
set ARCHBITS=_64
set ARCH_VS= Win64
set STRING_ARCH=64-Bit
) else (
set ARCHBITS=
set ARCH_VS=
set STRING_ARCH=32-Bit
)
set GENERATOR=Visual Studio %VS_COMPILERVERSION_SHORT% %VS_EDITION_YEAR%%ARCH_VS%
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio %VS_COMPILERVERSION_LONG%\Common7\IDE\devenv.com"
:: determine Qt Version and set variables
if "%QT_VERSION%" == "Qt5.5.1" (
set QT_REV_LONG=5.5.1
set QT_REV=5.5
)
if "%QT_VERSION%" == "Qt5.6.2" (
set QT_REV_LONG=5.6.2
set QT_REV=5.6
)
if "%QT_VERSION%" == "Qt5.7.0" (
set QT_REV_LONG=5.7.0
set QT_REV=5.7
)
if "%QT_VERSION%" == "Qt5.8.0" (
set QT_REV_LONG=5.8.0
set QT_REV=5.8
)
if "%QT_VERSION%" == "Qt5.9.0" (
set QT_REV_LONG=5.9.0
set QT_REV=5.9
)
set QT_SUFFIX=
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\%QT_VERSION%\%QT_REV%\%QT_COMPILERPREFIX%%ARCHBITS%%QT_SUFFIX%
:: set up Libraty Paths
set LIBPATH_BASE=E:\libs\%COMPILER%
set CMAKE_WINDOWS_LIBS_DIR=E:\libs
:: freeglut assume we use freeglut 3.0.0 if not try 2.8.1 if not sanitize the libs folder
if exist %LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\include (
set GLUT_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\include
set GLUT_GLUT_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-3.0.0\lib\freeglut.lib
) else (
if exist %LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\include (
set GLUT_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\include
set GLUT_GLUT_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\freeglut-2.8.1\lib\freeglut.lib
) else (
echo "Error: No suitable version of freeglut found!"
exit
)
)
:: check for gtest version 1.6 or 1.7 use the highest found version
for /l %%x in (6, 1, 7) do (
if exist %LIBPATH_BASE%\%ARCHITECTURE%\gtest-1.%%x.0 (
set GTESTVERSION=gtest-1.%%x.0
)
)
:: check for glew version 6.1.1 to 6.1.3 use the highest found version
for /l %%x in (0, 1, 3) do (
if exist %LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\include (
set GLEW_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\include
set GLEW_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\glew-1.1%%x.0\lib\glew32.lib
)
)
:: check for qwt version 6.1.1 to 6.1.3 use the highest found version
for /l %%x in (0, 1, 3) do (
if exist %LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\include (
set QWT6_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\include
set QWT6_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\lib\qwt.lib
set QWT6_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt%QT_REV_LONG%\lib
)
:: unfortunately qwt is not named consistently in our repos so we also have to check for a different folder named
if exist %LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\include (
set QWT6_INCLUDE_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\include
set QWT6_LIBRARY=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\lib\qwt.lib
set QWT6_LIBRARY_DIR=%LIBPATH_BASE%\%ARCHITECTURE%\qwt-6.1.%%x-qt-%QT_REV_LONG%\lib
)
)
set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%GLUT_INCLUDE_DIR%" -DGLUT_glut_LIBRARY="%GLUT_GLUT_LIBRARY%" -DGLEW_INCLUDE_DIR="%GLEW_INCLUDE_DIR%" -DGLEW_LIBRARY="%GLEW_LIBRARY_DIR%" -DQWT6_INCLUDE_DIR=%QWT6_INCLUDE_DIR% -DQWT6_LIBRARY=%QWT6_LIBRARY% -DQWT6_LIBRARY_DIR=%QWT6_LIBRARY_DIR% -DCMAKE_WINDOWS_LIBS_DIR=%CMAKE_WINDOWS_LIBS_DIR%
"C:\Program Files\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% ..
IF %errorlevel% NEQ 0 exit /b %errorlevel%
:: build Open-Flipper
%VS_PATH% /Build "Release" OpenFlipper.sln /Project "ALL_BUILD"
IF %errorlevel% NEQ 0 exit /b %errorlevel%
del *.exe
:: collect dlls and copy them to Openflipper dir
"C:\Program Files\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH_BASE%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% ..
%VS_PATH% /Build "Release" OpenFlipper.sln /Project "PACKAGE"
IF %errorlevel% NEQ 0 exit /b %errorlevel%
move OpenFlipper-*.exe "OpenFlipper-Free-Git-Master-%CI_BUILD_REF%-%BUILD_PLATFORM%-%STRING_ARCH%-%QT_VERSION%.exe"
cd tests
copy ..\Build\Qt*.dll testBinaries
copy ..\Build\icu*.dll testBinaries
run_tests.bat
::robocopy uses some error codes different from 0
IF %errorlevel% LSS 8 exit /b 0
cd ..
cd Build
dir
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment