Each time new code is pushed into your repo, you can have a cpplint command automatically run.
Example workflow:
- Put the following text into a file named
.github/workflows/cpplint.yml
in your repo):
name: cpplint
on: [push, pull_request]
jobs:
cpplint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pipx run cpplint --recursive .
Customize the final line to match your requirements.
Syntax: cpplint.py [--verbose=#] [--output=emacs|eclipse|vs7|junit]
[--filter=-x,+y,...]
[--counting=total|toplevel|detailed] [--repository=path]
[--root=subdir] [--linelength=digits] [--recursive]
[--exclude=path]
[--headers=ext1,ext2]
[--extensions=hpp,cpp,...]
<file> [file] ...
cpplint_modified_files.yml is an alternative, standalone GitHub Action that enables a repo to achieve gradual compliance with cpplint by linting (and compiling) only those files that have been added or modified (vs. origin/master).
- runs cpplint only on those files that have been modified vs. origin/master.
- compiles with g++ only those files that have been modified vs. origin/master.
- other optional filepath verifications may be commented out at the end of this file.