[code-infra] Migrate CircleCI jobs to Gen2 resource classes by LukasTy · Pull Request #48593 · mui/material-ui (original) (raw)
Switch every resource_class declaration to its .gen2 counterpart for an all-Gen2 baseline. Per-job overrides for jobs where Gen2 doesn't pay off will follow once we have CI duration data to compare against the master 24h Insights median.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
added type: enhancement
It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.
Involves the code-infra product (https://www.notion.so/mui-org/5562c14178aa42af97bc1fa5114000cd).
labels
Resolves lockfile drift on eslint-plugin-import — its eslint-import-resolver-typescript reference was being expanded into a nested form that simplifies away after dedupe.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
test_e2e and test_e2e_website are IO-bound (image pull + pnpm install + Playwright dominates the wall-clock), so Gen2 saved very little wall-clock while still charging the +20% per-minute premium:
test_e2e: 69s Gen1 → 60.5s Gen2 (1.14× speedup, below 1.20× break-even) test_e2e_website: 83s on Gen2 (no master baseline in pipeline workflow, follows the same mui-x precedent for e2e jobs)
Same pattern we saw on mui-x in mui#22610.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
test_static (1.18×), test_bundle_size_monitor (1.20×), and test_regressions (1.21×) all hover right around the 1.20× break-even threshold where Gen2 stops paying for itself. With N=2 PR runs the signal is too noisy to call them solidly above break-even, and the credit math is essentially flat either way.
Reverting them to Gen1 makes the per-job behavior more predictable and removes the risk of an unlucky variance swing pushing them below break-even on master.
Net credit reduction vs master stays at ~-20% per pipeline run; the remaining four CPU-bound jobs (test_browser, test_browser_legacy, test_unit, test_lint, test_types) all cleared 1.4× or better and carry the savings.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
LukasTy marked this pull request as ready for review
LukasTy added a commit to LukasTy/material-ui that referenced this pull request
mui#48557 added resource_class: 'medium+' and mui#48593 added
resource_class: medium to the test_regressions job ~3h apart. Neither
produced a textual conflict (different lines), so the merged config ended
up with two resource_class keys — invalid YAML. CircleCI fails to parse
config.yml and every pipeline on master errors before any job runs.
Consolidate to a single resource_class: medium+ directly under
<<: *default-job, matching the other executor jobs (test_browser,
test_e2e, ...). medium+ is still a Gen1 class — honoring mui#48593's revert
off Gen2 — while preserving mui#48557's bump for the parallelized visual
regression screenshots.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})