Skip to content

ci(benchmarks): harden against flaky external C-library downloads (#204)#213

Merged
kalwalt merged 1 commit into
devfrom
ci/harden-benchmarks-204
Jun 22, 2026
Merged

ci(benchmarks): harden against flaky external C-library downloads (#204)#213
kalwalt merged 1 commit into
devfrom
ci/harden-benchmarks-204

Conversation

@kalwalt

@kalwalt kalwalt commented Jun 22, 2026

Copy link
Copy Markdown
Member

Summary

The benchmarks CI job built a C baseline by downloading external sources at run time (jpeg-9f from ijg.org, WebARKitLib). A TLS/network flake there — plus a missing svn — failed the whole gate even though the Rust code was fine (#204; originally hit on PR #199).

Closes #204.

Changes (.github/workflows/ci.yml, benchmarks job)

  • Install subversion — the bootstrap logged command svn not found.
  • Cache the downloaded C sources (benchmarks/c_benchmark/archives) keyed on libraries.json hash — fewer live downloads.
  • Make the C baseline non-blocking (continue-on-error: true) with a 3x retry on the flaky bootstrap.py download. It only produces an optional comparison log.
  • Keep cargo bench --bench marker_bench as the required gate — the actual signal.

Net effect: a transient external-download failure now degrades gracefully (skips the C comparison) instead of failing the benchmarks gate. The Rust benchmarks still run and gate as before.

Note

This workflow change is exercised by this PR's own CI run, which validates the new job end-to-end.

🤖 Generated with Claude Code

The benchmarks job built a C baseline by downloading external sources
(jpeg-9f from ijg.org, WebARKitLib) at CI time; a TLS/network flake there
(and a missing `svn`) failed the whole gate even though the Rust code was
fine (#204).

- Install `subversion` (the bootstrap warned `svn not found`).
- Cache the downloaded C sources keyed on libraries.json hash.
- Run the C baseline as a NON-BLOCKING step (`continue-on-error`) with a
  3x retry on the flaky bootstrap download — it only yields an optional
  comparison log.
- Keep `cargo bench` (marker_bench) as the required gate signal.

Now a transient external-download failure degrades gracefully instead of
failing the benchmarks gate.

Closes #204.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@kalwalt kalwalt self-assigned this Jun 22, 2026
@kalwalt kalwalt added enhancement New feature or request ci/cd labels Jun 22, 2026
@kalwalt kalwalt moved this from Backlog to In progress in Plan to port KPM to rust Jun 22, 2026
@kalwalt kalwalt merged commit 45c79ca into dev Jun 22, 2026
29 of 30 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in Plan to port KPM to rust Jun 22, 2026
@kalwalt kalwalt deleted the ci/harden-benchmarks-204 branch June 28, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci(benchmarks): harden benchmarks job against flaky external C-library downloads

1 participant