name: Check formatting on: pull_request: paths: - '**' - '!.gitignore' - '!*.md' - '!.github/**' - '.github/workflows/clang-format.yml' permissions: contents: read pull-requests: write jobs: format-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - name: Fetch base commit run: git fetch origin ${{ github.event.pull_request.base.sha }} - name: Install clang-format-20 run: | wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc sudo add-apt-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-20 main" sudo apt-get install -y -qq clang-format-20 - uses: reviewdog/action-setup@v1 - name: Check formatting on changed lines env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git clang-format-20 --binary clang-format-20 \ --diff ${{ github.event.pull_request.base.sha }} -- \ '*.c' '*.cpp' '*.cc' '*.h' '*.hpp' \ | reviewdog \ -name="clang-format" \ -f=diff \ -reporter=github-pr-check \ -fail-level=error \ -filter-mode=added