Skip to content

Build: NX evaluation — ci:normal#34562

Closed
kasperpeulen wants to merge 17 commits into
kasper/nx-aifrom
kasper/nx-eval-normal
Closed

Build: NX evaluation — ci:normal#34562
kasperpeulen wants to merge 17 commits into
kasper/nx-aifrom
kasper/nx-eval-normal

Conversation

@kasperpeulen
Copy link
Copy Markdown
Member

@kasperpeulen kasperpeulen commented Apr 16, 2026

What I did

Automated evaluation PR for NX Cloud vs CircleCI comparison.

Workflow: ci:normal

This PR exists only to collect CI run data for the NX vs CircleCI evaluation. Retrigger pushes will bust the NX cache via codexCacheBust in nx.json to ensure fresh runs on both systems.

Do not merge.

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

No manual testing needed — this PR only triggers CI runs for data collection.

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli-storybook/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook publish.yml --field pr=<PR_NUMBER>

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 16, 2026

View your CI Pipeline Execution ↗ for commit c51a455

Command Status Duration Result
nx run-many -t compile,check,knip,test,lint,fmt... ✅ Succeeded 17m 44s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-16 16:02:51 UTC

@kasperpeulen kasperpeulen changed the base branch from next to kasper/nx-ai April 16, 2026 10:23
@kasperpeulen kasperpeulen marked this pull request as draft April 16, 2026 10:23
@kasperpeulen kasperpeulen added the build Internal-facing build tooling & test updates label Apr 16, 2026
@kasperpeulen kasperpeulen changed the title NX Evaluation: ci:normal (do not merge) Build: NX evaluation — ci:normal Apr 16, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 16, 2026

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Walkthrough

This PR introduces widespread CI/CD infrastructure changes including replacing the Wallaby MCP server with NX MCP, updating GitHub Actions workflow concurrency, restructuring Nx agent resource classes (downgrading Linux, removing Windows), adding new Windows assignment rules, implementing an NX_EXPERIMENT feature flag to conditionally exclude jobs, creating Storybook build targets, and adding a new CI evaluation script to compare CircleCI and NX Cloud performance metrics.

Changes

Cohort / File(s) Summary
MCP Configuration
.cursor/mcp.json
Replaced Wallaby MCP server definition with NX MCP server using npx nx mcp command.
GitHub Actions Workflow
.github/workflows/nx.yml
Added workflow-level concurrency with cancel-in-progress: false, added NX_CI_EXECUTION_ENV: 'linux' to Linux job, appended disabled Windows job definitions guarded by comments.
Nx Agent & Workflow Configuration
.nx/workflows/agents.yaml, .nx/workflows/assignment-rules-windows.yaml, .nx/workflows/distribution-config-daily.yaml
Downgraded linux-browsers-js resource class from extra_large+ to medium+, removed windows-js launch template, added new Windows assignment rules for compile and wildcard targets, added init-empty/init-features assignment to linux-js.
Codemod Windows Path Fix
code/lib/codemod/src/index.ts
Updated tinyglobby call to use { absolute: true } option, changing returned file paths from relative to absolute to mitigate Windows cross-drive issues.
Code Project Storybook Targets
code/project.json
Updated test target command to bash -c 'yarn test' and expanded inputs to include code/**/*; added new storybook-build target (depends on all projects' compile, outputs to storybook-static) and storybook-chromatic target (depends on storybook-build).
Sandbox Project Initialization Targets
code/sandbox/lit-vite-default-ts/project.json, code/sandbox/nextjs-default-ts/project.json, code/sandbox/vue3-vite-default-ts/project.json
Added init-empty target to each sandbox with STORYBOOK_INIT_EMPTY_TYPE environment variable set to sandbox-specific type identifier.
React Sandbox Extended Configuration
code/sandbox/react-vite-default-ts/project.json
Added init-empty and init-features targets with STORYBOOK_INIT_EMPTY_TYPE set to react-vite-ts, added ci:windows tag to project classification.
Root Nx Configuration
nx.json
Added init-empty and init-features target defaults running create-storybook and vitest commands via nx:run-commands, updated codexCacheBust value; both targets depend on scripts:run-registry with caching enabled.
Dependencies
package.json
Bumped @nx/workspace and nx devDependencies from ^22.6.1 to ^22.6.5.
CI Script Generation with NX_EXPERIMENT Flag
scripts/ci/main.ts, scripts/ci/sandboxes.ts, scripts/ci/init-empty.ts
Introduced NX_EXPERIMENT boolean constant that conditionally excludes Chromatic, benchmark, and Windows daily jobs when enabled; threaded nxExperiment option through getSandboxes() and getInitEmpty() functions to control job inclusion logic.
Sandbox Project Generation
scripts/create-nx-sandbox-projects.ts
Added INIT_EMPTY_TEMPLATES mapping to automatically generate init-empty targets for specified sandboxes, added special init-features target for react-vite/default-ts, extended CI tagging to include ci:windows for React sandbox.
CI Evaluation Script
scripts/evaluate-ci.ts
Added new executable script to evaluate and compare CI performance between CircleCI Insights and NX Cloud; reads agent credit rates, queries both platforms for failed runs, computes credit usage and USD costs, aggregates metrics, and produces formatted comparison reports.
Benchmark Package Target
scripts/project.json
Added new bench-packages target that runs benchmark comparison with base branch and pull request options, depends on run-registry, enables caching, and configures production mode.
Test Project Metadata Updates
test-storybooks/portable-stories-kitchen-sink/react-vitest-3/project.json, test-storybooks/yarn-pnp/project.json
Removed ci:normal tag from react-vitest-3 (kept ci:merged, ci:daily); removed both ci:normal and ci:merged tags from yarn-pnp (kept ci:daily), narrowing CI pipeline inclusion scope.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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

@kasperpeulen
Copy link
Copy Markdown
Member Author

Superseded by RC-sweep experiment — closing to wind down this branch's CI traffic. Branch intentionally not deleted (DB data references it). Do not merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Internal-facing build tooling & test updates ci:normal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant