-
Notifications
You must be signed in to change notification settings - Fork 1
135 lines (111 loc) · 3.7 KB
/
Copy pathrust-clippy.yml
File metadata and controls
135 lines (111 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# rust-clippy is a tool that runs a bunch of lints to catch common
# mistakes in your Rust code and help improve your Rust code.
# More details at https://github.com/rust-lang/rust-clippy
# and https://rust-lang.github.io/rust-clippy/
name: rust-clippy analyze
on:
push:
branches: [ "main", "*" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '15 22 * * 4'
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_PROFILE_TEST_DEBUG: 0
CARGO_PROFILE_RELEASE_LTO: true
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1
PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
name: Cargo Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libasound2-dev
pkg-config --libs --cflags alsa
- name: Install Rust toolchain
run: rustup toolchain install stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- name: Check
run: cargo check --locked --all-features
todos:
name: TODO and FIXME
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Check for TODO/FIXME markers
run: |
set -euo pipefail
! grep -RInE 'TODO |TODO:|FIXME |FIXME:|todo |todo:|fixme |fixme:|dbg!' \
src tests Cargo.toml README.md .github/dependabot.yml .github/workflows/codecov.yml
fmt:
name: Rust-fmt (Cargo Format)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Rust toolchain
run: rustup toolchain install stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- name: Install rustfmt
run: rustup component add rustfmt
- name: Format
run: cargo fmt --all -- --check
rust-clippy-analyze:
name: Run rust-clippy analyzing
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libasound2-dev
pkg-config --libs --cflags alsa
- name: Install Rust toolchain
run: rustup toolchain install stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- name: Install clippy
run: rustup component add clippy
- name: Install required cargo
run: cargo install clippy-sarif sarif-fmt
- name: Run rust-clippy
run: |
set -o pipefail
cargo clippy \
--all-targets \
--all-features \
--message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
- name: Upload analysis results to GitHub
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: rust-clippy-results.sarif
wait-for-processing: true