Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ updates:
schedule:
interval: weekly
open-pull-requests-limit: 5
ignore:
# The versioned ref tests our MSRV; @stable jobs track the latest compiler.
# Raise the MSRV deliberately alongside Cargo.toml's rust-version.
- dependency-name: dtolnay/rust-toolchain
6 changes: 5 additions & 1 deletion .github/workflows/actions.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: Build and Run

on: [push, pull_request]
on:
push:
branches: [main]
pull_request:

permissions:
contents: read
Expand Down Expand Up @@ -78,6 +81,7 @@ jobs:
steps:

- uses: actions/checkout@v7
# Keep pinned to Cargo.toml's rust-version; rust-stable tests the latest Rust.
- uses: dtolnay/rust-toolchain@1.88.0

- name: Build & Test
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/advisories.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Dependency advisories

on:
push:
branches: [main]
pull_request:
schedule:
- cron: '23 6 * * *'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Bounded fuzzing

on:
push:
branches: [main]
pull_request:
schedule:
- cron: '41 6 * * 1'
Expand Down
15 changes: 9 additions & 6 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,22 +89,25 @@ their normal package manager as described above.
## Platform coverage

The minimum supported Rust version is **1.88.0**, declared as `rust-version = "1.88"`
in `Cargo.toml`. CI runs the Rust build and tests on Linux
and Windows, checks Rust 1.88.0 on Linux, and runs the Clevis compatibility tests
in a separate Linux job.
in `Cargo.toml`. CI runs the Rust build and tests on the latest stable compiler
on Linux and Windows, checks Rust 1.88.0 on Linux, and runs the Clevis compatibility
tests in a separate Linux job. The stable jobs follow new Rust releases
automatically. Dependabot ignores `dtolnay/rust-toolchain` updates so the MSRV job
stays pinned; raise it deliberately alongside `Cargo.toml`'s `rust-version`.

Other Unix platforms have no CI coverage. See [key storage and rotation](KEY_STORAGE.md)
for platform permission and crash-durability differences.

## Release checks and fuzzing

CI requires formatting, strict Clippy, compilation, release builds, tests and
CI runs on pull requests and pushes to `main`, avoiding duplicate runs for PR
branch pushes. It requires formatting, strict Clippy, compilation, release builds, tests and
Rust 1.88.0 checks, retaining Linux, Windows and Clevis jobs. The assurance job
checks the combined platform reports; a local Linux run alone cannot establish
Windows behavior. Repository maintainers must select these jobs as required
status checks in GitHub branch protection to enforce them before merging.

Dependency advisories are checked on pushes, pull requests and a daily schedule
Dependency advisories are checked on pushes to `main`, pull requests and a daily schedule
with a freshly fetched RustSec database. Both the library and fuzz lockfiles are
scanned, and warnings fail the check. Dependabot monitors Cargo dependencies
(including fuzz tooling) and GitHub Actions weekly. To run the advisory checks:
Expand All @@ -116,7 +119,7 @@ cargo audit --file fuzz/Cargo.lock --deny warnings
```

Two bounded, seeded fuzz targets exercise recovery request parsing and JWK
conversion on pull requests, pushes and weekly runs. They run on nightly Rust
conversion on pull requests, pushes to `main` and weekly runs. They run on nightly Rust
with AddressSanitizer, separately from the library's stable/MSRV builds. See
[fuzz/README.md](fuzz/README.md) for commands, resource bounds, seed provenance
and crash reproduction. A bounded run is a regression check, not exhaustive
Expand Down
Loading