Skip to content

chore(ci): right-size acceptance executors - #7010

Open
parker-snyk wants to merge 2 commits into
mainfrom
IDP-7-acceptance-executor-rightsizing
Open

chore(ci): right-size acceptance executors#7010
parker-snyk wants to merge 2 commits into
mainfrom
IDP-7-acceptance-executor-rightsizing

Conversation

@parker-snyk

@parker-snyk parker-snyk commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Several acceptance jobs were still using eight-core executors. This PR moves four acceptance jobs from xlarge to large executors:

  • Linux x86
  • Linux static ARM
  • Alpine x86
  • Alpine ARM

CircleCI already splits the acceptance files across parallel containers. Inside each container, the acceptance command runs npx jest --maxWorkers=1, so each shard executes one Jest worker at a time. The xlarge executors provide eight cores to each shard, but Jest cannot spread that shard's tests across them. Historical usage reflected this, with median CPU around 11% to 12% and median RAM around 4%. Moving these jobs to Large removes idle capacity without reducing the existing shard-level parallelism.

I tested other executor combinations, but they did not improve the result within the agreed runtime threshold. This PR only contains the configuration that met that threshold. The build jobs, shard counts, test selection, and Remote Docker behavior are unchanged.

Configuration Pipeline Runtime CircleCI credits Runtime vs baseline Credits vs baseline
Baseline 38484 47m 57s 64,899 - -
Retained configuration, run 1 38487 43m 36s 50,689 9.1% faster 21.9% fewer
Retained configuration, run 2 38496 46m 03s 48,831 4.0% faster 24.8% fewer

The small speed difference is likely normal CI variation. Both retained-configuration runs completed within the baseline runtime, so we did not observe any time degradation while full-workflow credits fell by 21.9% to 24.8%.

Validation also included make format, make lint, and make build.

Tracking: IDP-7

Use Large executors for the x86, ARM, and Alpine acceptance suites after paired CircleCI runs stayed within the 10% wall-time threshold and reduced credit usage.

Keep Windows on Large because the Medium experiment exceeded the threshold. Build jobs, acceptance sharding, and test commands remain unchanged.
@snyk-io

snyk-io Bot commented Jul 17, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@parker-snyk
parker-snyk marked this pull request as ready for review July 17, 2026 15:03
@parker-snyk
parker-snyk requested a review from a team as a code owner July 17, 2026 15:03
@snyk-pr-review-bot

This comment has been minimized.

1 similar comment
@snyk-pr-review-bot

Copy link
Copy Markdown

PR Reviewer Guide 🔍

🧪 PR contains tests
🔒 No security concerns identified
⚡ No major issues detected
📚 Repository Context Analyzed

This review considered 2 relevant code sections from 2 files (average relevance: 0.73)

🤖 Repository instructions applied (from AGENTS.md)

@github-actions

Copy link
Copy Markdown
Contributor
Warnings
⚠️ There are multiple commits on your branch, please squash them locally before merging!

Generated by 🚫 dangerJS against c47aede

Comment thread .circleci/config.yml
docker:
- image: alpine:3.23
resource_class: large
alpine-arm64:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Should we also change alpine-arm64 to be alpine-arm64-xlarge to make it more clear on the size?

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