name: "Linter" on: push: branches: - dev - stable pull_request: branches: - dev - stable jobs: changes: runs-on: ubuntu-latest outputs: clang-format: ${{ steps.filter.outputs.clang-format }} steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v2 id: filter with: filters: | clang-format: - '**.cpp' - '**.c' - '**.h' - '.github/workflows/linter.yml' - 'scripts/clang-format.py' - '_clang-format' clang-format: needs: changes runs-on: ubuntu-22.04 if: ${{ needs.changes.outputs.clang-format == 'true' }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install wget, software-properties-common, lsb-release (dependencies of LLVM install script) run: sudo apt --assume-yes install wget software-properties-common lsb-release - name: Uninstall old conflicting packages run: sudo apt purge --assume-yes --auto-remove llvm python3-lldb-14 llvm-14 - name: Install automatic LLVM 16 run: wget https://apt.llvm.org/llvm.sh -O /tmp/llvm-install.sh; chmod +x /tmp/llvm-install.sh; sudo /tmp/llvm-install.sh 16 - name: Install clang-format-16 run: sudo apt --assume-yes install clang-format-16 - name: Install gitpython run: sudo pip install gitpython - name: Run clang-format run: | sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-16 160 clang-format --version python scripts/clang-format.py --check --verbose