From 00f68fb8a59a3866161d9e5d3055a803219f36c2 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 12 Feb 2023 16:43:55 +0100 Subject: [PATCH] workflow: Add clang-tidy reviews for all pull requests --- .clang-tidy | 6 ++++++ .github/workflows/lint.yml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 .clang-tidy create mode 100644 .github/workflows/lint.yml diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..880f30b52e --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,6 @@ +--- +Checks: 'clang-diagnostic-*,clang-analyzer-*,performance-*,portability-*,modernize-use-nullptr' +WarningsAsErrors: '' +HeaderFilterRegex: '' +FormatStyle: none +... diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000000..ca822383c2 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,34 @@ +name: Lint +on: [pull_request] + +jobs: + clang-tidy: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Install clang-tidy + run: | + sudo apt-get update + sudo apt-get install -y clang-tidy build-essential pkg-config libpng-dev libjpeg-dev libtiff-dev zlib1g-dev libssl-dev libx11-dev libgl1-mesa-dev libxrandr-dev libxxf86dga-dev libxcursor-dev libfreetype6-dev libvorbis-dev libeigen3-dev libopenal-dev libode-dev libbullet-dev libgtk-3-dev libassimp-dev libopenexr-dev + - name: Prepare compile_commands.json + run: | + cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_UNITY_BUILD=OFF -DHAVE_PYTHON=OFF -DINTERROGATE_PYTHON_INTERFACE=OFF + - name: Copy prebuilt files + run: | + for fn in **/*.prebuilt; do + echo mkdir -p $(dirname "cmake/$fn"); + echo cp "$fn" "cmake/${fn%.*}"; + done + - name: Create results directory + run: | + mkdir clang-tidy-result + - name: Analyze + run: | + git diff -U0 HEAD^ | clang-tidy-diff -p1 -path build -export-fixes clang-tidy-result/fixes.yml + - name: Post review + uses: platisd/clang-tidy-pr-comments@master + with: + github_token: ${{ github.token }} + clang_tidy_fixes: clang-tidy-result/fixes.yml + request_changes: true + suggestions_per_comment: 10