Skip to content

Guidance for combining benchmark job results into one report #202

@dyc3

Description

@dyc3

We use github action's native feature to only run benchmarks on relevant files changed. In order to do this, we have to silo each benchmark group that we care about into it's own GHA workflow, as you can see here: https://github.com/biomejs/biome/tree/main/.github/workflows

Each workflow is conditionally run with triggers that look like this:

pull_request:
    types: [ opened, synchronize ]
    branches:
      - main
      - next
    paths:
      - 'Cargo.lock'
      - 'crates/biome_configuration/**/*.rs'
      - 'crates/biome_rowan/**/*.rs'

I noticed on biomejs/biome#9945 that the codspeed bot comment says

❌ 7 regressed benchmarks
✅ 22 untouched benchmarks
⏩ 199 skipped benchmarks

Codspeed link: https://codspeed.io/biomejs/biome/branches/dyc3%2Fmain-into-next

I know for a fact that 199 benchmarks were not skipped, because the jobs for those "skipped" benchmarks ran. Presumably the css benchmarks finished last, and that resulted in the bot updating the comment only considering the css benchmark results.

Essentially, it appears that all of our benchmark jobs generate different reports. I'm not sure if this is intended behavior which is why I'm reaching out. Ideally, all workflows that ran for a commit would be combined into the same codspeed report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions