linter: fix readability-use-concise-preprocessor-directives issues #404
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| paths: | |
| - .github/workflows/CI.yml | |
| - CMakeLists.txt | |
| - include/* | |
| - tests/* | |
| - src/* | |
| pull_request: | |
| paths: | |
| - .github/workflows/CI.yml | |
| - CMakeLists.txt | |
| - include/* | |
| - tests/* | |
| - src/* | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| clang_format: | |
| name: clang-format check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update packages | |
| run: sudo apt update | |
| - name: Install clang-format | |
| run: sudo apt install -y clang-format | |
| - name: Check formatting | |
| run: find src include tests -name '*.cpp' -o -name '*.hpp' | xargs clang-format --dry-run --Werror | |
| windows_msvc: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx-std: [11, 14, 17, 20] | |
| name: windows / C++${{ matrix.cxx-std }} / MSVC | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Generate project files | |
| run: cmake . -B build -DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} -DDYLIB_BUILD_TESTS=ON -DDYLIB_WARNING_AS_ERRORS=ON | |
| - name: Build dynamic library and unit tests | |
| run: cmake --build build | |
| - name: Run unit tests | |
| working-directory: build | |
| run: ctest --verbose | |
| windows_msys2: | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| sys: [mingw32, mingw64, ucrt64, clang64] | |
| cxx-std: [11, 14, 17, 20] | |
| name: windows / C++${{ matrix.cxx-std }} / ${{matrix.sys}} | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{matrix.sys}} | |
| update: true | |
| install: make | |
| pacboy: toolchain:p cmake:p | |
| - name: Generate project files | |
| run: cmake . -B build -G "MinGW Makefiles" -DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} -DDYLIB_BUILD_TESTS=ON -DDYLIB_WARNING_AS_ERRORS=ON | |
| - name: Build dynamic library and unit tests | |
| run: cmake --build build | |
| - name: Run unit tests | |
| working-directory: build | |
| run: ctest --verbose | |
| linux: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx-std: [11, 14, 17, 20] | |
| arch: [64bit, 32bit] | |
| action: [tests, valgrind, clang-tidy] | |
| include: | |
| - arch: 64bit | |
| docker_arch: amd64 | |
| - arch: 32bit | |
| docker_arch: i386 | |
| name: linux ${{ matrix.arch }} ${{ matrix.action }} / C++${{ matrix.cxx-std }} / gcc | |
| runs-on: ubuntu-latest | |
| container: | |
| # replace with debian 13 (or latest) when available | |
| image: ${{ matrix.docker_arch }}/debian:testing | |
| options: --user root | |
| volumes: | |
| - ${{ github.workspace }}:/workspace | |
| steps: | |
| # https://github.com/actions/upload-artifact/issues/616 | |
| - uses: actions/checkout@v1 | |
| - name: Update packages | |
| run: apt update | |
| - name: Install build tools | |
| run: apt install -y build-essential cmake valgrind clang-tidy | |
| - name: Generate project files with tests | |
| if: ${{ matrix.action != 'clang-tidy'}} | |
| run: cmake . -B build -DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} -DDYLIB_BUILD_TESTS=ON -DDYLIB_WARNING_AS_ERRORS=ON | |
| - name: Generate project files with compile commands | |
| if: ${{ matrix.action == 'clang-tidy'}} | |
| run: cmake . -B build -DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDYLIB_WARNING_AS_ERRORS=ON | |
| - name: Build dynamic library and unit tests | |
| run: cmake --build build | |
| - name: Run clang-tidy | |
| if: ${{ matrix.action == 'clang-tidy'}} | |
| working-directory: build | |
| run: run-clang-tidy | |
| - name: Run unit tests | |
| if: ${{ matrix.action == 'tests'}} | |
| working-directory: build | |
| run: ctest --verbose | |
| - name: Run unit tests with valgrind | |
| if: ${{ matrix.action == 'valgrind'}} | |
| working-directory: build | |
| run: valgrind --leak-check=full --show-leak-kinds=all --error-exitcode=1 ./unit_tests | |
| macos: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx-std: [11, 14, 17, 20] | |
| arch: [intel, silicon, universal] | |
| action: [tests, leaks] | |
| include: | |
| - arch: intel | |
| osx_arch: x86_64 | |
| - arch: silicon | |
| osx_arch: arm64 | |
| - arch: universal | |
| osx_arch: arm64;x86_64 | |
| name: macos ${{ matrix.arch }} ${{ matrix.action }} / C++${{ matrix.cxx-std }} / clang | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Generate project files | |
| run: cmake . -B build "-DCMAKE_OSX_ARCHITECTURES=${{ matrix.osx_arch }}" -DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} -DDYLIB_BUILD_TESTS=ON -DDYLIB_WARNING_AS_ERRORS=ON | |
| - name: Build dynamic library and unit tests | |
| run: cmake --build build | |
| - name: Run unit tests | |
| if: ${{ matrix.action == 'tests'}} | |
| working-directory: build | |
| run: ctest --verbose | |
| - name: Run unit tests with leaks | |
| if: ${{ matrix.action == 'leaks'}} | |
| working-directory: build | |
| run: leaks -atExit -- ./unit_tests |