name: Lint on: [pull_request] jobs: clang-tidy: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 with: fetch-depth: 2 - 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: Save PR metadata run: | echo ${{ github.event.number }} > clang-tidy-result/pr-id.txt echo ${{ github.event.pull_request.head.repo.full_name }} > clang-tidy-result/pr-head-repo.txt echo ${{ github.event.pull_request.head.ref }} > clang-tidy-result/pr-head-ref.txt - name: Upload results uses: actions/upload-artifact@v2 with: name: clang-tidy-result path: clang-tidy-result/