stages: - build_major_compilers - build_minor_compiler_gcc10 - build_minor_compiler_gcc9 - build_minor_compiler_gcc8 - build_minor_compiler_gcc7 - build_major_compiler_clang - check_typos - run_cppcheck - build_minor_compiler_arm - install_deb_file - install_rpm_file build_gcc: only: refs: - master tags: - vm_linux stage: build_major_compilers image: gcc script: - apt-get update - apt-get install cmake -y # Build without boost - ./build.sh # Build with boost - apt-get install libboost-test-dev -y - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release build_gcc10: only: refs: - master tags: - vm_linux stage: build_minor_compiler_gcc10 image: ubuntu script: - apt-get update - apt-get install cmake gcc-10 g++-10 -y - export CC=gcc-10 - export CXX=g++-10 # Build without boost - ./build.sh # Build with boost - apt-get install libboost-test-dev -y - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc] build_gcc9: only: refs: - master tags: - vm_linux stage: build_minor_compiler_gcc9 image: ubuntu script: - apt-get update - apt-get install cmake gcc-9 g++-9 libboost-test-dev -y - export CC=gcc-9 - export CXX=g++-9 - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc10] build_gcc8: only: refs: - master tags: - vm_linux stage: build_minor_compiler_gcc8 image: ubuntu script: - apt-get update - apt-get install cmake gcc-8 g++-8 libboost-test-dev -y - export CC=gcc-8 - export CXX=g++-8 - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc9] build_gcc7: only: refs: - master tags: - vm_linux stage: build_minor_compiler_gcc7 image: ubuntu script: - apt-get update - apt-get install cmake gcc-7 g++-7 libboost-test-dev -y - export CC=gcc-7 - export CXX=g++-7 - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc8] build_clang: only: refs: - master tags: - vm_linux stage: build_major_compiler_clang image: ubuntu script: - apt-get update - apt-get install cmake clang libboost-test-dev -y - export CC=/usr/bin/clang - export CXX=/usr/bin/clang++ - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc7] build_windows: only: refs: - master stage: build_major_compilers tags: - vm_win script: #- choco install cmake -y - $env:PATH="C:\Program Files\CMake\bin;$env:PATH" # Build without boost - cmd /c ".\build.bat" # Clean build folder - rm -r -fo ./build - mkdir build - cd build # Build with boost #- vcpkg install boost-test:x64-windows #- vcpkg install boost-system:x64-windows - cmake .. -G "Visual Studio 16" -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake - cmake --build . --config Release -j4 # Run tests - ctest . -C Release build_vs2017: only: refs: - master stage: build_major_compilers tags: - vm_win script: #- choco install visualstudio2017community -y #- choco install visualstudio2017-workload-nativedesktop -y #- choco install cmake -y - $env:PATH="C:\Program Files\CMake\bin;$env:PATH" - cd build - cmake -G "Visual Studio 15" .. -DCMAKE_BUILD_TYPE=Release - cmake --build . --config Release -j4 build_macos: only: refs: - master stage: build_major_compilers tags: - macmini script: # Build without boost - ./build.sh # Build with boost # brew install boost - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j4 # Run tests - ctest . -C Release build_arm_linux: only: refs: - master stage: build_minor_compiler_arm tags: - arm-linux script: - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cmake --build . --config Release -j$(nproc) # Run tests - ctest . -C Release needs: [build_gcc] check_typos: only: refs: - master tags: - vm_linux stage: check_typos image: ubuntu script: - apt-get update - export DEBIAN_FRONTEND=noninteractive - ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime - apt-get install -y tzdata - dpkg-reconfigure --frontend noninteractive tzdata - apt-get install npm -y - npm install -g cspell - cspell "src/**/*" needs: [build_clang] cppcheck: only: refs: - master tags: - vm_linux stage: run_cppcheck image: ubuntu script: - apt-get update - apt-get install cmake gcc g++ libboost-test-dev cppcheck -y - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCPPINCLUDE_BUILD_WITH_TESTS=ON - cppcheck --project=compile_commands.json --enable=all --suppressions-list=../.cppcheck-suppressions-list --error-exitcode=1 --quiet needs: [check_typos] generate_deb_file: only: refs: - master tags: - vm_linux stage: install_deb_file image: ubuntu script: - apt-get update - apt-get install -y gcc-10 g++-10 cmake file - export CC=gcc-10 - export CXX=g++-10 - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release - cmake --build . --config Release -j$(nproc) # Generate deb file - cpack -G DEB - dpkg -i *.deb - cd .. - cppinclude --version needs: [cppcheck] generate_rpm_file: only: refs: - master tags: - vm_linux stage: install_rpm_file image: centos script: - yum group install "Development Tools" -y - yum install cmake3 libarchive -y - cd build - cmake3 .. -DCMAKE_BUILD_TYPE=Release - cmake3 --build . --config Release # Generate rpm file - cpack -G RPM - rpm -i *.rpm - cd .. - cppinclude --version needs: [build_gcc]