Skip to content

CI local command#4391

Merged
ScriptedAlchemy merged 3 commits intomainfrom
cursor/ci-local-command-c655
Feb 9, 2026
Merged

CI local command#4391
ScriptedAlchemy merged 3 commits intomainfrom
cursor/ci-local-command-c655

Conversation

@ScriptedAlchemy
Copy link
Copy Markdown
Member

Description

Introduces a pnpm ci:local command to enable local simulation of CI workflows. This script (tools/scripts/ci-local.mjs) sequentially executes a subset of CI jobs, mirroring the GitHub Actions setup. It allows developers to test changes locally, reducing reliance on remote CI runs for faster iteration and debugging.

The command supports:

  • --list: To view all available jobs.
  • --only=job1,job2: To run specific jobs.

It explicitly skips metro-related jobs and GitHub-only actions like actionlint and bundle-size-comment.

Related Issue

N/A

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have updated the documentation.

Open in Cursor Open in Web

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@cursor
Copy link
Copy Markdown

cursor bot commented Feb 9, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Feb 9, 2026

⚠️ No Changeset found

Latest commit: c91e181

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

@netlify
Copy link
Copy Markdown

netlify bot commented Feb 9, 2026

Deploy Preview for module-federation-docs ready!

Name Link
🔨 Latest commit c91e181
🔍 Latest deploy log https://app.netlify.com/projects/module-federation-docs/deploys/698961cc0afdc50009d32456
😎 Deploy Preview https://deploy-preview-4391--module-federation-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 9, 2026

Bundle Size Report

No bundle size changes detected.

Total dist: 4.95 MB (no change)
Total ESM gzip: 154.7 kB (no change)

@ScriptedAlchemy ScriptedAlchemy marked this pull request as ready for review February 9, 2026 04:25
@ScriptedAlchemy ScriptedAlchemy merged commit b451dc6 into main Feb 9, 2026
10 of 11 checks passed
@ScriptedAlchemy ScriptedAlchemy deleted the cursor/ci-local-command-c655 branch February 9, 2026 04:26
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c91e18164c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

return;
}
await runShell(
'npx nx run-many --target=serve --projects=node-local-remote,node-remote,node-dynamic-remote-new-version,node-dynamic-remote --parallel=10 & echo "done" && sleep 25 && npx nx run-many --target=serve --projects=node-host & sleep 5 && npx wait-on tcp:3333 && npx nx run node-host-e2e:test:e2e',
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Terminate federation servers after e2e-node test run

This step starts multiple nx ... --target=serve processes in the background (&) but never stops them, so pnpm ci:local leaves long-lived Node servers running even when the job succeeds. Because this script runs jobs sequentially in one local machine (unlike isolated GitHub runners), those orphaned processes can consume resources and cause later local runs to fail with occupied ports or flaky behavior.

Useful? React with 👍 / 👎.

return;
}
await runShell(
'lsof -ti tcp:3050,3051,3052,3053,3054,3055,3056 | xargs -r kill && pnpm run app:modern:dev & sleep 30 && for port in 3050 3051 3052 3053 3054 3055 3056; do while true; do response=$(curl -s http://127.0.0.1:$port/mf-manifest.json); if echo "$response" | jq empty >/dev/null 2>&1; then break; fi; sleep 1; done; done',
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Stop Modern SSR dev servers after readiness check

This command launches pnpm run app:modern:dev in the background and exits once manifests are readable, but there is no teardown afterward, so the dev servers keep running after the job finishes. In the local sequential runner this leaks processes and ports between jobs/reruns, which can make subsequent ci:local executions fail or behave inconsistently.

Useful? React with 👍 / 👎.

@2heal1 2heal1 mentioned this pull request Feb 12, 2026
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