name: clippy
concurrency:
cancel-in-progress: false
group: ${{ github.workflow }}-${{ github.ref }}
on:
pull_request:
branches: [ main, master ]
types: [ opened, reopened, closed ]
paths:
- /**/workflows/clippy.yml
- /**/*.rs
- /**/Cargo.*
push:
branches: [ main, master ]
tags: [ latest, v*, "*-nightly" ]
paths:
- /**/workflows/clippy.yml
- /**/*.rs
- /**/Cargo.*
release:
types: [ created ]
repository_dispatch:
types: [ clippy ]
workflow_dispatch:
inputs:
upload:
default: 'true'
description: 'Upload the SARIF file?'
required: true
permissions:
actions: read contents: read
security-events: write
jobs:
clippy:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
cache-key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
cache-workspaces: true
components: clippy, rustfmt
-
name: setup cargo
run: cargo install clippy-sarif sarif-fmt
-
name: Clippy
run: |
# Run clippy and convert the output to SARIF format
cargo clippy --all-features --message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
continue-on-error: true
-
if: inputs.upload == 'true'
name: Upload analysis
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: rust-clippy-results.sarif
wait-for-processing: true