Skip to content

ci: combine benchmark jobs back into one workflow#9963

Merged
ematipico merged 1 commit intomainfrom
dyc3/ci-combine-benchmarks
Apr 13, 2026
Merged

ci: combine benchmark jobs back into one workflow#9963
ematipico merged 1 commit intomainfrom
dyc3/ci-combine-benchmarks

Conversation

@dyc3
Copy link
Copy Markdown
Contributor

@dyc3 dyc3 commented Apr 13, 2026

Summary

Codspeed does not support having runs in different workflows. They must all be in the same workflow.

Generated by gpt 5.4

Test Plan

ci should be green

Docs

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 13, 2026

⚠️ No Changeset found

Latest commit: b985c52

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dyc3 dyc3 force-pushed the dyc3/ci-combine-benchmarks branch from eac42a5 to 7972591 Compare April 13, 2026 13:07
@dyc3 dyc3 force-pushed the dyc3/ci-combine-benchmarks branch from 7972591 to b985c52 Compare April 13, 2026 13:20
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 13, 2026

Merging this PR will degrade performance by 38.34%

⚡ 1 improved benchmark
❌ 2 (👁 2) regressed benchmarks
✅ 246 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
index_d_ts[react/index.d.ts] 31.6 ms 27.5 ms +15.03%
👁 index_d_ts[RedisCommander.d.ts] 134.8 ms 145.2 ms -7.13%
👁 index_d_ts[astro_server.mjs] 116.5 ms 188.9 ms -38.34%

Comparing dyc3/ci-combine-benchmarks (b985c52) with main (bcd6508)

Open in CodSpeed

@dyc3 dyc3 marked this pull request as ready for review April 13, 2026 13:45
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 13, 2026

Walkthrough

This PR consolidates eleven separate category-specific benchmark workflow files (benchmark_js.yml, benchmark_json.yml, benchmark_css.yml, benchmark_html.yml, benchmark_graphql.yml, benchmark_grit.yml, benchmark_markdown.yml, benchmark_manifests.yml, benchmark_module_graph.yml, benchmark_configuration.yml, and benchmark_tailwind.yml) into a single unified .github/workflows/benchmark.yml file. The new workflow implements intelligent path filtering via a changes job that sets boolean outputs for each benchmark category, enabling conditional execution based on file modifications whilst running all categories unconditionally on workflow dispatch and merge group events.

Possibly related PRs

Suggested labels

A-Tooling, A-Project

Suggested reviewers

  • ematipico
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: consolidating multiple separate benchmark workflow files into a single unified workflow file.
Description check ✅ Passed The description explains the motivation (Codspeed compatibility requirement) and provides context for the changes, though brief.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dyc3/ci-combine-benchmarks

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/benchmark.yml (1)

160-171: Trim redundant event checks in job guards.

Since Line 160–Line 171 already force all category outputs to true for workflow_dispatch/merge_group, repeating those event checks in every job if is redundant and harder to maintain.

Suggested simplification pattern
-    if: github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group' || needs.changes.outputs.js == 'true'
+    if: needs.changes.outputs.js == 'true'

Apply the same pattern to the other category jobs.

Also applies to: 188-188, 232-232, 248-248, 264-264, 280-280, 295-295, 333-333, 347-347, 361-361, 375-375, 389-389

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/benchmark.yml around lines 160 - 171, The workflow sets
all category flags (JS, JSON, CSS, HTML, GRAPHQL, MARKDOWN, GRIT, TAILWIND,
CONFIGURATION, MANIFESTS, MODULE_GRAPH) to true when EVENT_NAME is
'workflow_dispatch' or 'merge_group', so remove the redundant event-name checks
from individual job "if" guards and rely solely on those category boolean
outputs instead; update each job's conditional expressions that currently
include "[ \"$EVENT_NAME\" = 'workflow_dispatch' ] || [ \"$EVENT_NAME\" =
'merge_group' ]" (the repeated pattern mentioned for lines 188, 232, 248, 264,
280, 295, 333, 347, 361, 375, 389) to only reference the relevant category
flag(s) (e.g., JS, CSS, MARKDOWN, etc.) so the global pre-set covers
dispatch/merge_group cases and maintenance is simpler.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/benchmark.yml:
- Line 29: The custom runner labels (depot-ubuntu-24.04-arm and
depot-ubuntu-24.04-arm-16) used in the workflow
(.github/workflows/benchmark.yml) will fail actionlint; either add an actionlint
config that allow-lists these labels (create .github/actionlint.yml and include
rules permitting those runner labels) or replace each occurrence of
depot-ubuntu-24.04-arm and depot-ubuntu-24.04-arm-16 with standard GitHub runner
labels (e.g., ubuntu-24.04 or ubuntu-latest) across the workflow so actionlint
recognizes them.

---

Nitpick comments:
In @.github/workflows/benchmark.yml:
- Around line 160-171: The workflow sets all category flags (JS, JSON, CSS,
HTML, GRAPHQL, MARKDOWN, GRIT, TAILWIND, CONFIGURATION, MANIFESTS, MODULE_GRAPH)
to true when EVENT_NAME is 'workflow_dispatch' or 'merge_group', so remove the
redundant event-name checks from individual job "if" guards and rely solely on
those category boolean outputs instead; update each job's conditional
expressions that currently include "[ \"$EVENT_NAME\" = 'workflow_dispatch' ] ||
[ \"$EVENT_NAME\" = 'merge_group' ]" (the repeated pattern mentioned for lines
188, 232, 248, 264, 280, 295, 333, 347, 361, 375, 389) to only reference the
relevant category flag(s) (e.g., JS, CSS, MARKDOWN, etc.) so the global pre-set
covers dispatch/merge_group cases and maintenance is simpler.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 296eeb6a-efaf-4194-a87d-58d90db7cfb6

📥 Commits

Reviewing files that changed from the base of the PR and between 9e570d1 and b985c52.

📒 Files selected for processing (12)
  • .github/workflows/benchmark.yml
  • .github/workflows/benchmark_configuration.yml
  • .github/workflows/benchmark_css.yml
  • .github/workflows/benchmark_graphql.yml
  • .github/workflows/benchmark_grit.yml
  • .github/workflows/benchmark_html.yml
  • .github/workflows/benchmark_js.yml
  • .github/workflows/benchmark_json.yml
  • .github/workflows/benchmark_manifests.yml
  • .github/workflows/benchmark_markdown.yml
  • .github/workflows/benchmark_module_graph.yml
  • .github/workflows/benchmark_tailwind.yml
💤 Files with no reviewable changes (11)
  • .github/workflows/benchmark_manifests.yml
  • .github/workflows/benchmark_configuration.yml
  • .github/workflows/benchmark_json.yml
  • .github/workflows/benchmark_js.yml
  • .github/workflows/benchmark_html.yml
  • .github/workflows/benchmark_module_graph.yml
  • .github/workflows/benchmark_css.yml
  • .github/workflows/benchmark_markdown.yml
  • .github/workflows/benchmark_grit.yml
  • .github/workflows/benchmark_tailwind.yml
  • .github/workflows/benchmark_graphql.yml

Comment thread .github/workflows/benchmark.yml
@ematipico ematipico merged commit 1df7e3a into main Apr 13, 2026
26 checks passed
@ematipico ematipico deleted the dyc3/ci-combine-benchmarks branch April 13, 2026 14:13
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