Skip to content

ci: migrate fuzz-smoke (12 targets) + sanitizers (3 modes) to smithy#35

Open
avrabe wants to merge 1 commit intomainfrom
smithy-migration
Open

ci: migrate fuzz-smoke (12 targets) + sanitizers (3 modes) to smithy#35
avrabe wants to merge 1 commit intomainfrom
smithy-migration

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 3, 2026

Summary

First gale pass onto smithy self-hosted, deliberately small. Two
workflows whose steps are container-free and don't need any host
tooling smithy doesn't already ship:

  • fuzz-smoke.yml — 12-target matrix, 60s per target
  • sanitizers.yml — ASan / TSan / LSan, nightly Rust + rust-src

Both move to the rust-cpu class (12 G MemoryHigh, sccache
disabled today, plenty of compile capacity).

Out of scope this PR (each gale workflow listed once for clarity)

Workflow Reason hosted stays
bazel-tests Bazel not on smithy
coverage container: vendor CI image
engine-bench-* (5 files) container: vendor CI image
formal-verification (verus/kani/rocq) Bazel + Nix + CBMC; toolchains role would need to ship them
llvm-lto container: vendor CI image
nightly container: vendor CI image
renode-tests container: vendor CI image
zephyr-tests container: vendor CI image

The container: jobs are migrable via smithy's podman-docker compat
shim, but UNTESTED on these specific Zephyr / vendor images. Belongs
in a follow-up PR with a controlled validation, not a "flip + hope"
move.

Expected win

Same as spar / rivet / kiln: queue elimination on the org-free
Actions tier dominates. fuzz-smoke and sanitizers both run real
nightly cargo work for minutes-scale, exactly the shape that
exposes runner queue waste.

Test plan

  • All 12 fuzz targets run on rust-cpu and finish green
  • All 3 sanitizer modes run on rust-cpu and finish green
  • No EACCES events in smithy's journalctl -u smithy-trace-eacces.service
  • No "no space left on device" — TMPDIR fix should hold

Rollback

Revert this commit; both workflows flip back to ubuntu-22.04.

First pass for gale, conservative subset of two container-free
workflows (no sudo / no apt-get / no container: directive) that
mirror the spar/rivet/kiln pattern:

  rust-cpu     fuzz-smoke.yml     12-target matrix, 60s each
  rust-cpu     sanitizers.yml     ASan / TSan / LSan, nightly Rust

Stays on hosted (out of scope for this PR):

  - bazel-tests + 5 engine-bench-* + coverage + llvm-lto + nightly
    + renode-tests + zephyr-tests
    All use container: directive with vendor CI images. Smithy has
    podman-docker compat shim but it is UNTESTED on these images;
    keep on hosted until validated separately.
  - formal-verification (verus / kani / rocq)
    verus + rocq go through Bazel + Nix which smithy doesn't ship.
    kani bundles CBMC (~100 MB), not pre-installed on smithy.
@codecov
Copy link
Copy Markdown

codecov Bot commented May 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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