lint.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. name: Lint
  2. on: [pull_request]
  3. jobs:
  4. clang-tidy:
  5. runs-on: ubuntu-20.04
  6. steps:
  7. - uses: actions/checkout@v3
  8. with:
  9. fetch-depth: 2
  10. - name: Install clang-tidy
  11. run: |
  12. sudo apt-get update
  13. 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
  14. - name: Prepare compile_commands.json
  15. run: |
  16. cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_UNITY_BUILD=OFF -DHAVE_PYTHON=OFF -DINTERROGATE_PYTHON_INTERFACE=OFF
  17. - name: Copy prebuilt files
  18. run: |
  19. for fn in **/*.prebuilt; do
  20. echo mkdir -p $(dirname "cmake/$fn");
  21. echo cp "$fn" "cmake/${fn%.*}";
  22. done
  23. - name: Create results directory
  24. run: |
  25. mkdir clang-tidy-result
  26. - name: Analyze
  27. run: |
  28. git diff -U0 HEAD^ | clang-tidy-diff -p1 -path build -export-fixes clang-tidy-result/fixes.yml
  29. - name: Save PR metadata
  30. run: |
  31. echo ${{ github.event.number }} > clang-tidy-result/pr-id.txt
  32. echo ${{ github.event.pull_request.head.repo.full_name }} > clang-tidy-result/pr-head-repo.txt
  33. echo ${{ github.event.pull_request.head.ref }} > clang-tidy-result/pr-head-ref.txt
  34. - name: Upload results
  35. uses: actions/upload-artifact@v2
  36. with:
  37. name: clang-tidy-result
  38. path: clang-tidy-result/