Skip to content

ci: split wellness-check + add doc/miri/sanitizer jobs#11

Merged
pigri merged 3 commits intomainfrom
chore/wellness-check-improvements
May 5, 2026
Merged

ci: split wellness-check + add doc/miri/sanitizer jobs#11
pigri merged 3 commits intomainfrom
chore/wellness-check-improvements

Conversation

@pigri
Copy link
Copy Markdown

@pigri pigri commented May 5, 2026

Summary

Same wellness-check upgrade just landed on amygdala (gen0sec/amygdala#3). Restructured wellness-check.yaml modeled on the wirefilter Rust workflow.

  • Split monolithic fmt-and-test into parallel fmt, clippy, doc, unit-tests, e2e jobs.
  • Added doc job (RUSTDOCFLAGS=-D warnings) to catch broken intra-doc links.
  • Added miri job (pure-Rust core, --no-default-features --lib, MIRIFLAGS=-Zmiri-disable-isolation -Zmiri-permissive-provenance, timeout-minutes: 45).
  • Added sanitizers matrix (address / thread / leak) via -Zbuild-std.
  • Top-level concurrency group; --locked everywhere; push: branches trigger.
  • DAG: e2e / miri / sanitizers all needs: [fmt, clippy].

Semgrep deliberately not added — Dependabot is the org's SCA path.

Test plan

  • All 7 jobs visible in Checks tab
  • No regression in pass/fail vs. baseline main

pigri added 3 commits May 5, 2026 23:14
… coverage

Restructured `wellness-check.yaml` modeled on the same upgrade
applied to amygdala (PR gen0sec/amygdala#3):

* split monolithic `fmt-and-test` into independent `fmt`, `clippy`,
  `doc`, `unit-tests`, `e2e` jobs so a fmt nit no longer gates the
  slow tests
* added `doc` job with `RUSTDOCFLAGS=-D warnings` to catch broken
  intra-doc links / stale rustdoc
* added `miri` job (`--no-default-features --lib`,
  `MIRIFLAGS=-Zmiri-disable-isolation -Zmiri-permissive-provenance`,
  `timeout-minutes: 45`) — UB detection for the pure-Rust core
* added `sanitizers` matrix (`address`, `thread`, `leak`) on
  `-Zbuild-std`, also pure-Rust core to avoid FFI false positives
* added top-level `concurrency` group to cancel superseded runs
* added `--locked` to every cargo invocation
* added `push: branches` trigger so post-merge regressions surface
* job DAG: heavy jobs `needs: [fmt, clippy]` so they short-circuit

Semgrep skipped — gen0sec uses Dependabot for SCA coverage.
Adds a fast `machete` job to wellness-check.yaml that runs
`cargo machete` (action `bnjbvr/cargo-machete@v0.9.2`, pinned by
SHA) to detect unused entries in `Cargo.toml`. Catches dep drift
that would otherwise silently bloat the build / publish surface.

Per-repo Cargo.toml updates so the gate is green at landing:
  * remove genuinely unused deps (where any existed)
  * add `[package.metadata.cargo-machete] ignored = [...]` for
    optional build-deps and renamed-import crates that machete
    structurally can't see (build.rs invocations, feature-gated
    deps, and `wirefilter-engine` imported as `wirefilter::`).
    Each ignored entry is commented with the reason.
Wellness-check now runs every cargo command with `--locked` for
reproducibility. Drop Cargo.lock from .gitignore (current Cargo team
guidance for libraries) so CI reproduces exact dep versions and the
new gate works.
@pigri pigri merged commit 2ad134b into main May 5, 2026
10 checks passed
@pigri pigri deleted the chore/wellness-check-improvements branch May 5, 2026 21:42
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