Skip to content

feat(ci): enable competitor benchmarks (semantic-release, changesets) in release run - #451

Merged
BryanFRD merged 1 commit into
mainfrom
feat/enable-competitor-benchmarks
May 18, 2026
Merged

BryanFRD merged 1 commit into
mainfrom
feat/enable-competitor-benchmarks

Conversation

@BryanFRD

Copy link
Copy Markdown
Contributor

Why

The full benchmark job (FerrLabs/Benchmarks@v3 with type: full) runs on every main push and produces a hyperfine timing table per fixture × per tool, plus binary/install size. The infrastructure has supported comparison against semantic-release / changesets / release-please for a long time, but the FerrFlow CI invoked it with skip-competitors: true — so every release shipped with a comparison table that only had one row (FerrFlow itself).

Flipping the flag enables the actual comparison so next release notes include side-by-side timings.

Cost

The benchmark job is gated by if: github.event_name == 'push' && github.ref == 'refs/heads/main' — it never runs on PRs. So enabling competitors adds time to release runs only, not to PR latency.

Approximate added time per release: 5-10 minutes (npm install for each competitor + hyperfine across 4 fixtures × 2 npm-installed competitors). Acceptable given how rarely it triggers.

Output

Each main push (= each release) will now produce:

  • PR comment with comparison table (already wired)
  • Release notes with comparison table (already wired via benchmark-release-summary artifact)
  • Updated hyperfine-baseline artifact (90-day retention, fetchable via gh API for any future public-facing page)

Follow-up

Once a couple of releases produce real data, open a follow-up to surface the comparison publicly (e.g. /compare page on ferrflow.com pulling the artifact at build time).

Copilot AI review requested due to automatic review settings May 18, 2026 18:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: 20b5e67 Previous: 0b5fe57 Ratio
git_find_tag/100 1354598 ns/iter (± 8805)
git_find_tag/1000 13630722 ns/iter (± 67735)

This comment was automatically generated by workflow using github-action-benchmark.

@BryanFRD
BryanFRD merged commit d75a7bd into main May 18, 2026
36 of 37 checks passed
@BryanFRD
BryanFRD deleted the feat/enable-competitor-benchmarks branch May 18, 2026 18:49
BryanFRD added a commit that referenced this pull request May 19, 2026
Wires up runtime benchmarks for changesets, semantic-release,
standard-version and commit-and-tag-version. Without these configs the
runner's pre-flight validation step silently skipped every non-ferrflow
tool, so the perf page only ever showed ferrflow rows even after #451
flipped skip-competitors off.

Closes #452
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.

2 participants