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@v3 - uses: dorny/paths-filter@v2 id: filter with: filters: | clang-format: - '**.cpp' - '**.c' - '**.h' - '.github/workflows/linter.yml' clang-format: needs: changes runs-on: ubuntu-20.04 if: ${{ needs.changes.outputs.clang-format == 'true' }} steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install wget run: sudo apt --assume-yes install wget - name: Install automatic llvm (stable branch) run: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" - name: Install clang-format-11 run: sudo apt --assume-yes install clang-format-11 - name: Install gitpython run: sudo pip install gitpython - name: Run clang-format run: | find ./src -regex '.*\.\(cpp\|h\|c\)' -exec clang-format -style=file --dry-run --Werror {} \;