refactor(bench): migrate benchmarks to codspeed exec CLI#16
Conversation
dece53d to
0b22c7b
Compare
Greptile SummaryThis PR replaces the per-command matrix +
Confidence Score: 5/5The change is a clean harness swap with no functional risk to the benchmarks themselves; no data-flow or logic paths are altered. All three matrix variants (3.26.0, 3.25.1, local) now run independently with fail-fast: false. The version-label and benchmark-name derivation in generate_config.py mirrors the old bench.py logic exactly. The exec_cmd string construction is correct for shell execution. The only observable side-effect is a fresh history series on the CodSpeed dashboard, which is explicitly documented in the PR description. No files require special attention. Important Files Changed
|
Replace the pytest-codspeed harness (bench.py) with a small generator (generate_config.py) that emits a codspeed.yml of exec-harness targets, run via `codspeed run`. Each target's name is kept byte-identical to the old pytest test id (test_valgrind[<version>, <cmd>, <config>]) so the dashboard names are unchanged. The exec-harness reports the URI as `exec_harness::<name>` (prefix is hardcoded in the runner) instead of `bench.py::<name>`; the platform keys history on the full URI, so this starts a fresh history series with the same display names. CI now matrixes over the Valgrind version only (one job per version) and generates that version's config from `valgrind --version`. Per-version jobs preserve failure isolation: the exec-harness aborts the whole batch on a single non-zero command, so upstream versions stay separate and keep continue-on-error.
1799be9 to
d2dd609
Compare
Replace the pytest-codspeed harness (bench.py) with a small generator
(generate_config.py) that emits a codspeed.yml of exec-harness targets,
run via
codspeed run. Each target's name is kept byte-identical to theold pytest test id (test_valgrind[, , ]) so the
dashboard names are unchanged.
The exec-harness reports the URI as
exec_harness::<name>(prefix ishardcoded in the runner) instead of
bench.py::<name>; the platform keyshistory on the full URI, so this starts a fresh history series with the
same display names.
CI now matrixes over the Valgrind version only (one job per version) and
generates that version's config from
valgrind --version. Per-versionjobs preserve failure isolation: the exec-harness aborts the whole batch
on a single non-zero command, so upstream versions stay separate and keep
continue-on-error.