CI: clippy over every target, against the lockfile

c35552d · Gabe Morell · 2026-11-05 00:20

3 files +45 -0
Message
{commit_body(@commit)}

Files changed

added .forgejo/workflows/clippy.yml
+45 −0
@@ -0,0 +1,45 @@
1 +name: clippy
2 +# Lints gate master: every warning clippy or rustc raises fails the run.
3 +# The same command every Rust repository on the forge runs, over every
4 +# target, against the committed Cargo.lock.
5 +on:
6 + push:
7 + branches: [master]
8 + pull_request:
9 + workflow_dispatch:
10 +
11 +permissions:
12 + contents: read
13 +
14 +# A newer push supersedes this run: on a branch or PR the run in
15 +# progress is cancelled; on master it finishes, and only a run still
16 +# waiting is replaced.
17 +concurrency:
18 + group: ${{ github.workflow }}-${{ github.ref }}
19 + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
20 +
21 +jobs:
22 + clippy:
23 + runs-on: arc-runner-set
24 + steps:
25 + # A bare arc-runner-set container ships no compilers: sea-orm's
26 + # native-tls needs the OpenSSL headers and pkg-config, ring's build
27 + # script a C toolchain.
28 + - name: Tools
29 + run: |
30 + sudo apt-get update
31 + sudo apt-get install -y git curl ca-certificates build-essential pkg-config libssl-dev
32 +
33 + - uses: actions/checkout@v4
34 +
35 + # The toolchain the image builds with (rust:1.92) and
36 + # dependency-updates.yml resolves the lockfile with (1.92.0).
37 + # Installed directly, since this runner sets ImageOS to "selfhosted"
38 + # over anything a workflow says.
39 + - name: Rust
40 + run: |
41 + curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.92.0 -c clippy
42 + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
43 +
44 + - name: Run clippy
45 + run: cargo clippy --workspace --all-targets --locked -- -D warnings

Parents: 36c0c87