Skip to content

ci: adopt the fleet reusable workflow - #9

Merged
h4x0r merged 3 commits into
mainfrom
ci/adopt-fleet-ci
Aug 8, 2026
Merged

ci: adopt the fleet reusable workflow#9
h4x0r merged 3 commits into
mainfrom
ci/adopt-fleet-ci

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

ci: adopt the fleet reusable workflow

Replaces the hand-maintained ci.yml with a call to
SecurityRonin/fleet-ci/.github/workflows/rust-ci.yml, pinned to
619094ad54edc586f5c2733358e00326b30790bd.

What the old gate enforced, and where each piece went:

fmt / clippy / test (3-OS) / deny / secrets / docs / fuzz-check
-> the shared workflow's equivalent jobs, same shape.

msrv (1.96, cargo test --all-features) and
msrv-libs (1.80, cargo build -p sqlite-core -p sqlite-forensic)
-> the shared per-member MSRV matrix, which reads each member's declared
rust-version: sqlite-cli 1.96, sqlite-core 1.80, sqlite-forensic 1.80.
msrv-check is left at the default build. test would newly RUN the
suite at 1.80, which the old msrv-libs job never did; build only
drops the test-at-1.96 strictness, and the stable test job still
covers that ground.

coverage (--fail-under-functions 100)
-> kept VERBATIM as the coverage job, with coverage-gate: "off" on the
call. The shared coverage inputs express LINE gates only; inheriting
the strict default would impose a 100%-line gate this repo has never
met (measured on this tree: 100.00% functions, 97.02% lines).

package completeness / geiger
-> copied verbatim below ci:, unchanged.

The caller keeps env: RUSTFLAGS: -D warnings because a called workflow does
not inherit the caller's env — without it the three verbatim jobs would run
relaxed relative to before.

NEW gate this adoption adds: cargo-vet. The repo carries supply-chain/
{config,audits,imports}.toml but its ci.yml had no vet job, and the shared
workflow runs one by default. Left on deliberately (ADR-0018), flagged here
because it is an addition, not a carry-over.

Knowingly NOT carried across (no input expresses it):

  • cargo test on DEFAULT features. The old test job ran the suite twice,
    once default and once --all-features; the shared job runs --all-features
    only.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com


🤖 Generated with Claude Code

h4x0r and others added 3 commits August 7, 2026 06:51
Replaces the hand-maintained ci.yml with a call to
SecurityRonin/fleet-ci/.github/workflows/rust-ci.yml, pinned to
619094ad54edc586f5c2733358e00326b30790bd.

What the old gate enforced, and where each piece went:

  fmt / clippy / test (3-OS) / deny / secrets / docs / fuzz-check
    -> the shared workflow's equivalent jobs, same shape.

  msrv (1.96, `cargo test --all-features`) and
  msrv-libs (1.80, `cargo build -p sqlite-core -p sqlite-forensic`)
    -> the shared per-member MSRV matrix, which reads each member's declared
       rust-version: sqlite-cli 1.96, sqlite-core 1.80, sqlite-forensic 1.80.
       msrv-check is left at the default `build`. `test` would newly RUN the
       suite at 1.80, which the old msrv-libs job never did; `build` only
       drops the test-at-1.96 strictness, and the stable test job still
       covers that ground.

  coverage (`--fail-under-functions 100`)
    -> kept VERBATIM as the `coverage` job, with coverage-gate: "off" on the
       call. The shared coverage inputs express LINE gates only; inheriting
       the `strict` default would impose a 100%-line gate this repo has never
       met (measured on this tree: 100.00% functions, 97.02% lines).

  package completeness / geiger
    -> copied verbatim below `ci:`, unchanged.

The caller keeps `env: RUSTFLAGS: -D warnings` because a called workflow does
not inherit the caller's env — without it the three verbatim jobs would run
relaxed relative to before.

NEW gate this adoption adds: cargo-vet. The repo carries supply-chain/
{config,audits,imports}.toml but its ci.yml had no vet job, and the shared
workflow runs one by default. Left on deliberately (ADR-0018), flagged here
because it is an addition, not a carry-over.

Knowingly NOT carried across (no input expresses it):
  * `cargo test` on DEFAULT features. The old test job ran the suite twice,
    once default and once --all-features; the shared job runs --all-features
    only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`ci / cargo-deny` fails on this PR, and not because of anything in this
repository. The pin `619094ad` predates the one commit that changed
`deny-config-repo`'s default, so CI runs:

    deny-config-repo: SecurityRonin/fleet-config
    cargo deny check --config .fleet-config/deny.toml all

The shared config carries 21 bare RUSTSEC ignores with no reason and no removal
condition, and — the part that matters here — it OVERRIDES this repo's own
deny.toml, which already carries honest, reasoned ignores with removal
conditions for exactly the advisories now being reported.

Measured both ways: against this repo's own config `cargo deny check` passes;
against the shared config it fails. So the failure is the wrong config being
used, not a missing suppression. Adding new ignores would be suppression layered
on top of policy that already passes.

Repinned to f9802dca, where the default is the repository's own deny.toml and
opting into the shared one is explicit. One line; no deny.toml, vet or source
change anywhere.
Pinning a dependency down to keep this repo's declared MSRV achievable moved the
resolved set, and the vet store had no record for the versions that came out.

Each takes the strongest mechanism that applies per ADR-0018: publisher trust for
crates we publish or whose publisher an imported aggregate auditor already
vouches for, and honest [[exemptions]] only for the remainder. An exemption
asserts that nobody audited the crate — equally true before and after a version
change — so refreshing one claims nothing new.

No `cargo vet certify --accept-all`: a certify record asserts a human read the
source, so bulk-certifying fabricates the condition being claimed. audits.toml
carries zero self-certified entries after this change.

`cargo vet --locked` passes.
@h4x0r
h4x0r merged commit d321c57 into main Aug 8, 2026
21 checks passed
@h4x0r
h4x0r deleted the ci/adopt-fleet-ci branch August 8, 2026 07:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant