ferrlabs/FerrFlow Benchmarks
Run benchmarks and detect performance regressions
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 6, 2026
- License
- MPL 2.0
Pinned Snippet
uses: ferrlabs/benchmarks@90ce64396c762ad04a8a89a86a5739c664e0d50f # v5.1.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| type | Benchmark type: micro, full, or all | no | all |
| skip-competitors | Skip competitor benchmarks in full mode | no | false |
| alert-threshold | Regression alert threshold (e.g. 120%) | no | 120% |
| comment-on-pr | Post benchmark results as PR comment | no | true |
| full-regression-threshold | Relative threshold for full benchmark regressions (e.g. 125%) | no | 125% |
| binary-size-threshold | Binary size growth threshold (e.g. 120%) | no | 120% |
| warmup | Number of warmup runs before timing (hyperfine --warmup) | no | 2 |
| runs | Number of timed runs (hyperfine --runs) | no | 10 |
| definitions | Path to the directory of JSON fixture definitions for benchmark fixture generation | yes | — |
| verbose | Show full error output when a benchmark command fails validation | no | false |
| ferrflow-token | GitHub token for PR comments and artifact access | yes | — |
| group-filter | Optional criterion bench group filter (substring). If set, only benches matching this are run. Use for matrix sharding. | no | "" |
| binary-dir | Directory holding a prebuilt `ferrflow` executable. When set, the full benchmark skips its own `cargo build --release` and puts this directory on PATH instead. Point it at a downloaded build artifact to avoid recompiling a binary the caller already produced. | no | "" |
| fixtures-dir | Directory of already-generated benchmark fixtures. When set, the full benchmark skips its own fixture generation and benchmarks whatever is in here. Give a shard a directory holding only its own fixture. | no | "" |
| shard | Run as a matrix shard: benchmark and write latest.json, but skip the baseline download, regression check, PR comment and uploads. An aggregate job merges the shards and does those once. | no | false |
| merge-partials | Directory of partial latest.json files from sharded runs. When set, the action skips building and benchmarking entirely: it merges the partials and then runs the regression check, PR comment and uploads over the merged result. | no | "" |
Outputs
| name | description |
|---|---|
| regression-detected | Whether a regression was detected |
| benchmark-summary | Formatted benchmark summary (markdown) for release notes |