config.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. version: 2.1
  2. jobs:
  3. build_clang:
  4. docker:
  5. - image: debian:11
  6. resource_class: medium
  7. steps:
  8. - checkout
  9. - run:
  10. name: "prepare & build"
  11. command: |
  12. apt-get update
  13. apt-get install -y cmake clang wx-common libwxgtk3.0-gtk3-dev wx3.0-headers libev-dev libboost-system-dev libboost-date-time-dev libboost-regex-dev libboost-program-options-dev
  14. cmake -S . -B build.release -DCMAKE_BUILD_TYPE=Release -DBUILD_THREAD=on -DBUILD_BOOST_ASIO=on -DBUILD_WX=on -DBUILD_EV=on -DBUILD_DOC=on -DBUILD_EXAMPLES=on -DCMAKE_CXX_FLAGS="-fsanitize=undefined -fsanitize=address -fno-omit-frame-pointer -Wall -Wextra -pedantic -Werror"
  15. cd build.release && make -j2 && ctest --output-on-failure . && cd ..
  16. cmake -S . -B build.shared -DBUILD_SHARED_LIBS=on -DBUILD_THREAD=on -DBUILD_BOOST_ASIO=on -DBUILD_WX=on -DBUILD_EV=on -DBUILD_EXAMPLES=on
  17. cd build.shared && make -j2 && ctest --output-on-failure . && cd ..
  18. build_gcc:
  19. docker:
  20. - image: debian:10
  21. resource_class: medium
  22. steps:
  23. - checkout
  24. - run:
  25. name: "prepare & build"
  26. command: |
  27. apt-get update
  28. apt-get install -y cmake g++ git lcov wx-common libwxgtk3.0-gtk3-dev wx3.0-headers libev-dev libboost-system-dev libboost-date-time-dev libboost-regex-dev libboost-program-options-dev
  29. mkdir build
  30. cd build && cmake -DBUILD_DOC=on -DBUILD_THREAD=on -DBUILD_BOOST_ASIO=on -DBUILD_WX=on -DBUILD_EV=on -DBUILD_DOC=on -DCMAKE_CXX_FLAGS="-g -fprofile-arcs -ftest-coverage --coverage -Wall -Wextra -pedantic -Werror" ..
  31. make -j2
  32. lcov --directory . --zerocounters
  33. cd tests && ROTOR_INSPECT_DELIVERY=10 ctest --output-on-failure . && ROTOR_INSPECT_DELIVERY=1 ctest . && cd ..
  34. lcov --directory . --capture --output-file coverage.info
  35. lcov --remove coverage.info '*/tests/*' '*/examples/*' '/usr/*' --output-file coverage.info.cleaned
  36. rm coverage.info
  37. genhtml -o coverage coverage.info.cleaned
  38. apt-get install -y curl
  39. bash <(curl -s https://codecov.io/bash) -X gcov
  40. build_gcc_thread_unsafe:
  41. docker:
  42. - image: debian:10
  43. resource_class: medium
  44. steps:
  45. - checkout
  46. - run:
  47. name: "prepare & build"
  48. command: |
  49. apt-get update
  50. apt-get install -y cmake g++ libev-dev libboost-system-dev libboost-date-time-dev libboost-regex-dev libboost-program-options-dev
  51. mkdir build
  52. cd build && cmake -DBUILD_DOC=on -DBUILD_THREAD=on -DBUILD_BOOST_ASIO=on -DBUILD_THREAD_UNSAFE=on -DBUILD_EV=on -DBUILD_DOC=on ..
  53. make -j2 && ctest .
  54. build_arm:
  55. machine:
  56. image: ubuntu-2004:202101-01
  57. resource_class: arm.medium
  58. steps:
  59. - checkout
  60. - run:
  61. name: "prepare & build"
  62. command: |
  63. sudo apt-get update
  64. sudo apt-get install -y cmake g++ libev-dev libboost-system-dev libboost-date-time-dev libboost-regex-dev libboost-program-options-dev
  65. mkdir build
  66. cd build && cmake -DBUILD_DOC=on -DBUILD_THREAD=on -DBUILD_BOOST_ASIO=on -DBUILD_EV=on ..
  67. make -j2 && ctest .
  68. build_conan:
  69. docker:
  70. - image: debian:11
  71. resource_class: medium
  72. steps:
  73. - checkout
  74. - run:
  75. name: "prepare & build"
  76. command: |
  77. apt-get update
  78. apt-get install -y cmake clang python3-pip
  79. pip3 install conan
  80. conan profile detect
  81. conan create --build=missing --version 0.26 .
  82. workflows:
  83. build-all-workflow:
  84. jobs:
  85. - build_gcc
  86. - build_gcc_thread_unsafe
  87. - build_clang
  88. - build_arm
  89. - build_conan