Skip to content

ci: run fuzz targets in parallel, build CI test wheels without LTO - #222

Merged
brndnmtthws merged 1 commit into
mainfrom
ci/parallel-fuzz-fast-wheels
Sep 27, 2026
Merged

brndnmtthws merged 1 commit into
mainfrom
ci/parallel-fuzz-fast-wheels

Conversation

@brndnmtthws

Copy link
Copy Markdown
Owner

Two runner-time cuts borrowed from brndnmtthws/hessboost#124 (which itself took the ci profile and abi3 matrix from #221). Wall time is unchanged: the critical path is windows-latest / stable / default (218 s in main run 36335261574).

Changes

  • Fuzz: the smoke step ran the 9 targets one after another (100 s of a 151 s job). It now runs one cargo fuzz run per CPU at a time; the build step already builds every target with the same flags, so each run only checks freshness. Logs go to $RUNNER_TEMP/fuzz-logs/. After all targets finish, each target's output is printed in its own ::group::, in list order: printing as each one ended interleaved the groups of targets finishing together. If any failed, the step exits 1 with an ::error:: naming them. Crash artifacts upload as before.
  • Python: the python job's wheels are built only to be tested, but built with python/Cargo.toml's lto = "fat" and codegen-units = 1. The maturin step now sets CARGO_PROFILE_RELEASE_LTO=false and CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 (maturin-action forwards CARGO_* into the manylinux container). python-sdist and publish.yml still build and test with the real release profile. Wheel builds on main took 35–109 s (Windows 109 s).

Verification

  • actionlint 1.7.12 (with shellcheck 0.11.0) on the workflow; shellcheck on the extracted fuzz step.
  • Ran the extracted fuzz step locally on nightly with nproc shimmed to 4: all 9 targets ran their 11 s, step took 34 s (100 s sequential in CI).
  • Failure path: a cargo shim failing fuzz-kem with exit 77. The other 8 targets still completed, fuzz-kem (exit 77) showed its output, and the step exited 1 with fuzz targets failed: fuzz-kem.
  • cargo build --release --locked in python/ with the two overrides builds.
  • CI timings on this PR will show the wheel build savings.

@netlify

netlify Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for dryoc-docs ready!

Name Link
🔨 Latest commit f9bf5fb
🔍 Latest deploy log https://app.netlify.com/projects/dryoc-docs/deploys/6ab967a22b7e620008c313ab
😎 Deploy Preview https://deploy-preview-222--dryoc-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov

codecov Bot commented Sep 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.32%. Comparing base (fbacd16) to head (f9bf5fb).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #222   +/-   ##
=======================================
  Coverage   68.32%   68.32%           
=======================================
  Files         115      115           
  Lines       10032    10032           
=======================================
  Hits         6854     6854           
  Misses       3178     3178           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@brndnmtthws
brndnmtthws merged commit adb19d0 into main Sep 27, 2026
35 checks passed
@brndnmtthws
brndnmtthws deleted the ci/parallel-fuzz-fast-wheels branch September 27, 2026 19:58
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