aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/clang-tidy-review.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/clang-tidy-review.yml')
-rw-r--r--.github/workflows/clang-tidy-review.yml70
1 files changed, 70 insertions, 0 deletions
diff --git a/.github/workflows/clang-tidy-review.yml b/.github/workflows/clang-tidy-review.yml
new file mode 100644
index 00000000..4701f6b5
--- /dev/null
+++ b/.github/workflows/clang-tidy-review.yml
@@ -0,0 +1,70 @@
+name: clang-tidy-review
+
+on: [pull_request]
+
+jobs:
+ compile:
+ name: ${{matrix.buildname}}
+ runs-on: ${{matrix.os}}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - os: ubuntu-latest
+ buildname: 'clang-tidy'
+ triplet: x64-linux
+ compiler: clang_64
+ qt: '5.15.2'
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Restore Qt cache
+ uses: actions/cache@v2.1.7
+ id: cache-qt
+ with:
+ path: ${{github.workspace}}/Qt/${{matrix.qt}}
+ key: ${{matrix.os}}-qt-${{matrix.qt}}-cache
+
+ - name: Install Qt
+ uses: jurplel/install-qt-action@v2
+ with:
+ version: ${{matrix.qt}}
+ dir: ${{github.workspace}}
+ cached: ${{steps.cache-qt.outputs.cache-hit}}
+ aqtversion: '==1.1.2'
+
+ - name: Install Catch2
+ shell: bash
+ run: |
+ curl -L https://github.com/catchorg/Catch2/archive/v2.13.4.tar.gz -o catch2.tar.gz
+ tar xvf catch2.tar.gz
+ cd Catch2-2.13.4
+ cmake -Bbuild -H. -DBUILD_TESTING=OFF
+ sudo cmake --build build/ --target install
+
+ - name: Use CMake 3.20.1
+ uses: lukka/get-cmake@v3.20.1
+
+ - name: Generate compile_commands.json
+ uses: lukka/run-cmake@v3
+ with:
+ cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
+ cmakeListsTxtPath: '${{github.workspace}}/CMakeLists.txt'
+ buildDirectory: '${{github.workspace}}/build'
+ cmakeAppendedArgs: >-
+ -DCMAKE_GLOBAL_AUTOGEN_TARGET=ON
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
+ -DENABLE_CLAZY:BOOL=ON
+ buildWithCMakeArgs: >-
+ --target autogen
+
+ - uses: ZedThree/clang-tidy-review@v0.8.2
+ id: review
+ with:
+ build_dir: 'build'
+ clang_tidy_checks: '-*,performance-*,readability-*,bugprone-*,clang-analyzer-*,cppcoreguidelines-*,mpi-*,misc-*,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-init-variables,-cppcoreguidelines-pro-type-member-init,-cppcoreguidelines-avoid-magic-numbers'
+ apt_packages: 'pkg-config,libzip-dev,libglu1-mesa-dev,libpulse-dev'
+ # If there are any comments, fail the check
+ - if: steps.review.outputs.total_comments > 0
+ run: exit 1