To ensure high quality during the development process, a CI must be set up. Third party dependencies need to be correctly included. With each incoming commit a build should be executed and all tests must run successfully. The documentation also must be compiled.
Build will be set up using Docker. CI runs on Linux, options for Windows CI will be evaluated.
Prerequisites:
• Conan for dependency management is set up.
• GitLab Migration is finished.
• Eclipse servers for building are available.
Acceptance Criteria:
• Automated build runs after each commit on Linux.
• Tests are executed and documentation is built.
Edited
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
Activity
Sort or filter
Newest first
Oldest first
Show all activity
Show comments only
Show history only
Tuan Duong Quangchanged the descriptionCompare with previous version
Just fixed the OSI recipe - it now also works under Linux
The patch for the FMI library is located in /utils/ci/scripts/patches, but I needed to fix two tabs to get it running. I've just shared the file for you, so please check it in, as soon as you've got time.
Boost works out of the box
Qt works out of the box
Unfortunatly, openpass fails - there still seem to be some issues with OSI and Protobuf:
openpass/0.8: Calling build()-- The C compiler identification is GNU 10.2.1-- The CXX compiler identification is GNU 10.2.1-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: /usr/bin/cc - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: /usr/bin/c++ - skipped-- Detecting CXX compile features-- Detecting CXX compile features - done-- Found Protobuf: /home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620/ThirdParty/lib/libprotobuf.so;-lpthread(found version "3.11.4")CMake Error at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message): Could NOT find OSI (missing: OSI_LIBRARY)Call Stack (most recent call first): /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE) cmake/FindOSI.cmake:70 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/global.cmake:77 (find_package) CMakeLists.txt:24 (include)-- Configuring incomplete, errors occurred!See also "/home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620/CMakeFiles/CMakeOutput.log".See also "/home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620/CMakeFiles/CMakeError.log".openpass/0.8: openpass/0.8: ERROR: Package 'd593edb122dbf365cc66925435f37bd910346620' build failedopenpass/0.8: WARN: Build folder /home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620ERROR: openpass/0.8: Error in build() method, line 45 cmake.configure(defs={"CMAKE_PREFIX_PATH": "./ThirdParty"}) ConanException: Error 1 while executing cd'/home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620'&& cmake -G"Unix Makefiles"-DCMAKE_BUILD_TYPE="Release"-DCONAN_IN_LOCAL_CACHE="ON"-DCONAN_COMPILER="gcc"-DCONAN_COMPILER_VERSION="10"-DCONAN_CXX_FLAGS="-m64"-DCONAN_SHARED_LINKER_FLAGS="-m64"-DCONAN_C_FLAGS="-m64"-DCONAN_LIBCXX="libstdc++11"-DBUILD_SHARED_LIBS="ON"-DCMAKE_INSTALL_PREFIX="/home/developer/.conan/data/openpass/0.8/_/_/package/d593edb122dbf365cc66925435f37bd910346620"-DCMAKE_INSTALL_BINDIR="bin"-DCMAKE_INSTALL_SBINDIR="bin"-DCMAKE_INSTALL_LIBEXECDIR="bin"-DCMAKE_INSTALL_LIBDIR="lib"-DCMAKE_INSTALL_INCLUDEDIR="include"-DCMAKE_INSTALL_OLDINCLUDEDIR="include"-DCMAKE_INSTALL_DATAROOTDIR="share"-DCONAN_CMAKE_POSITION_INDEPENDENT_CODE="ON"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY="ON"-DCONAN_EXPORTED="1"-Wno-dev-DCMAKE_PREFIX_PATH="./ThirdParty"'/home/developer/.conan/data/openpass/0.8/_/_/build/d593edb122dbf365cc66925435f37bd910346620'
**Edit: ** Actually I'm not sure, in which environment conan got installed, we'll have to check. If it is MSYS, then maybe a python -m conan like described below for Windows will work.
You will have to call conan via the "Windows native" Python installation, like in the links I mentioned here, using the environment variable PYTHON_WINDOWS_EXE:
if it's possible to switch to a backslash notation, we might be able to use the windows %programfiles% instead (see https://stackoverflow.com/a/45923797/7063154) - or we create (or ask eclipse to create) a junction to Python39
"${PYTHON_WINDOWS_EXE}" -m conans.conan profile new default --detect
This would also affect Linux environments if a command is executed like here (via an environment variable containing spaces in paths).
... and a switch has to be added to allow execution of the script in our Linux docker container as well, e.g. by setting another variable PYTHON_COMMAND from PYTHON_WINDOWS_EXE or just use python, depending on the environment.
just yesterday I played around with Conan a little. In order to make it work under Linux, I had to do some changes. Also, I noticed small things like the absence of Arena allocation. Could this be helpful for you? If so, I would push a merge request today.