name: C++ Format Check on: # allow workflow to be run manually workflow_dispatch: pull_request: types: - opened - synchronize - reopened - labeled - unlabeled branches: - develop - master jobs: cpp-linter: runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps: - uses: actions/checkout@v6 - uses: cpp-linter/cpp-linter-action@v2 id: linter env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: style: file files-changed-only: true tidy-checks: '-*' version: '18' # clang-format version format-review: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'cpp-format-suggest') }} passive-reviews: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'cpp-format-suggest') }} file-annotations: true step-summary: true extensions: 'cpp,h' - name: Comment with suggestion instructions if: steps.linter.outputs.checks-failed > 0 && !contains(github.event.pull_request.labels.*.name, 'cpp-format-suggest') uses: actions/github-script@v7 with: script: | const {owner, repo} = context.repo; const issue_number = context.payload.pull_request.number; await github.rest.issues.createComment({ owner, repo, issue_number, body: "C++ formatting checks failed. Add the `cpp-format-suggest` label to this PR for inline formatting suggestions on the next run." }); - name: Failure Check if: steps.linter.outputs.checks-failed > 0 run: | echo "Some files failed the formatting check." echo "See job summary and file annotations for details." exit 1