46 lines
1.2 KiB
YAML
46 lines
1.2 KiB
YAML
# CI job for scanning Cargo dependencies for vulnerabilities and report/fail job based on criticality.
|
|
# Critically vulnerable dependencies with fix available will mark the run as failed (X)
|
|
name: Rust Cargo Audit
|
|
|
|
on:
|
|
push:
|
|
branches: master
|
|
pull_request:
|
|
|
|
# Allowing manual runs with ability to choose branch
|
|
workflow_dispatch:
|
|
|
|
# Optimisation option by targeting direct paths to only scan when there are changes to dependencies in the push/PR
|
|
# push:
|
|
# paths:
|
|
# - 'Cargo.toml'
|
|
# - 'Cargo.lock'
|
|
# pull_request:
|
|
# paths:
|
|
# - 'Cargo.toml'
|
|
# - 'Cargo.lock'
|
|
|
|
# Example of running scheduled scans at 6AM UTC every Monday to regularly check for vulnerable dependencies
|
|
# schedule:
|
|
# - cron: '0 6 * * 1'
|
|
|
|
# Run the job
|
|
jobs:
|
|
Cargo-audit:
|
|
name: Cargo Vulnerability Scanner
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Check out GitHub repo
|
|
- uses: actions/checkout@v2
|
|
|
|
# Install cargo audit
|
|
- name: Install Cargo Audit
|
|
uses: actions-rs/install@v0.1
|
|
with:
|
|
crate: cargo-audit
|
|
version: latest
|
|
|
|
# Run cargo audit using args from .cargo/audit.toml (ignores, etc.)
|
|
- name: Run Cargo Audit
|
|
run: cargo audit -c always
|