Clippy lints in your Pull Requests
This GitHub Action executes clippy
and posts all lints as annotations for the pushed commit, as in the live example here.
This example is utilizing toolchain
Actions
to install the most recent nightly
clippy version.
on: push
name: Clippy check
jobs:
clippy_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: clippy
override: true
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
on: push
name: Clippy check
jobs:
clippy_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: rustup component add clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
name: Clippy check
jobs:
clippy_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
components: clippy
override: true
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args-file: "./clippy_args.txt"
Example file-based args (clippy_args.txt
)
# here's a comment
--locked --all-targets --all-features --
-D missing_docs
-D unused_extern_crates
-D warnings
# another one
-D clippy::complexity
Name | Required | Description | Type | Default |
---|---|---|---|---|
token |
✓ | GitHub secret token, usually a ${{ secrets.GITHUB_TOKEN }} |
string | |
toolchain |
Rust toolchain to use; override or system default toolchain will be used if omitted | string | ||
args |
Arguments for the cargo clippy command |
string | ||
use-cross |
Use cross instead of cargo |
bool | false | |
name |
Name of the created GitHub check. If running this action multiple times, each run must have a unique name. | string | clippy | |
args-file |
Path to file containing line-delimited arguments for cargo clippy (sh -style comments supported) |
string |
For extra details about the toolchain
, args
and use-cross
inputs,
see cargo
Action documentation.
NOTE: only specify one argument source, either args
or args-file
.
NOTE: if your workflow contains multiple instances of the clippy-check
action you will need to give each invocation a unique name, using the name
property described above.
Check runs must have a unique name, and this prevents a later check run overriding a previous one within the same workflow.
Due to token permissions,
this Action WILL NOT be able to post clippy
annotations for Pull Requests from the forked repositories.
This is a pretty big problem, which can be solved only by Github themselves,
see #2 for details.
As a fallback this Action will output all clippy messages into the stdout
and fail the result correspondingly.