-
Couldn't load subscription status.
- Fork 1.2k
CI Refactor Optimize Money Saving #6476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
+3,447
−405
Conversation
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
This commit sets up Nx Cloud for your Nx workspace, enabling distributed caching and the Nx Cloud GitHub integration for fast CI and improved developer experience. You can access your Nx Cloud workspace by going to https://cloud.nx.app/orgs/68f3785bee8dae2b4d02842a/workspaces/68f3787fc0580a5ddf2ba4b0 **Note:** This commit attempts to maintain formatting of the nx.json file, however you may need to correct formatting by running an nx format command and committing the changes.
✅ Deploy Preview for reliable-cocada-166884 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
- Add NX Cloud runner configuration to nx.json - Update CircleCI config to use 'nx affected' commands - Replace yarn build with nx affected for faster PR builds - Only build changed projects instead of entire monorepo - Remove access token from nx.json (now using env var) - Add NX Cloud documentation comments to config.yml This enables remote caching and distributed execution via NX Cloud, expected to reduce CI build times by 30-70%.
NX Cloud requires Node >=20.19.0 for [email protected] compatibility. Updated all CircleCI jobs from node:20.0.0 to node:20.19.0.
|
View your CI Pipeline Execution ↗ for commit 7a14547
☁️ Nx Cloud last updated this comment at |
Reverted to using 'yarn build' and 'yarn build:libs' instead of 'nx affected'. NX Cloud will still cache all builds automatically without needing to change the build commands. Benefits: - NX Cloud remote caching works with existing commands - No risk of breaking builds by changing what gets built - Cache hits will speed up repeated builds by 30-70% - Analytics available at https://nx.app
… URLs - Prevents env vars from being baked into webpack bundles - Ensures same cache key for production and test builds - Adds post-build script to inject E2E test URLs into HTML - Updates CircleCI to use yarn inject-e2e-config after build - Fixes cache collision security issue where localhost URLs could leak to production Changes: - solidity-compiler.tsx: Read from window.__REMIX_COMPILER_URLS__ instead of process.env - resolve.ts: Read NPM URL from window object instead of process.env - inject-e2e-config.js: New post-build script to inject runtime config - package.json: Add inject-e2e-config script - config.yml: Remove env vars from build, add injection step for e2e jobs
NX 15.7.1 doesn't support environment variables in the inputs array. This configuration was causing errors and is no longer needed since we moved to runtime configuration via window.__REMIX_COMPILER_URLS__
…E tests - build-and-cache.yml: Auto-build on push to cache artifacts to NX Cloud (free GH runners) - e2e-chrome-on-demand.yml: Manual E2E Chrome tests with optional test pattern filtering - README.md: Documentation for both workflows with setup instructions Benefits: - Free NX Cloud caching via GitHub Actions (public repo) - On-demand E2E testing without consuming CircleCI credits - Shared cache between GitHub Actions and CircleCI - Manual control over when to run expensive E2E tests
50848e4 to
68cd4f0
Compare
823d7a2 to
55e9392
Compare
yann300
approved these changes
Oct 28, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
CI OPTIMIZE
New CI helpers added in this PR (brief)
Auto-update E2E keyword enum: after
build:e2e, a script scans e2e tests and refreshes therun_file_tests_keywordenum in.circleci/config.yml. Why: zero manual maintenance and no drift—new tests are immediately selectable in CI by keyword.Rerun only failed tests: new
rerun_failedworkflow withrerun-failed-e2ejob that fetches failures from recent runs (configurable history/mode) and re-executes just those tests with retries. Why: faster feedback, less noise, and targeted flake handling.reporting
post-failed-reportjob waits for E2E jobs, generates an HTML summary (stored as artifacts), and comments a link on the PR. Why: instant triage without digging through raw logs.Other small CI improvements in this PR
apps/remix-ide/ci/singletest.sh): prints build id, conditionally prepares Slither only when remixd tests are present. Why: less overhead, faster single-test runs.scripts/post-pr-report.js): supports GitHub App auth (or PAT), sticky comment updates (no spam), optional commit statuses, and a clearer summary of top failing tests with a link to the HTML report. Why: reliable, concise signal in the PR.Cost savings (how this reduces credits)
rerun_failedre-runs just the failed tests (with retries) instead of the entire suite → big savings on flaky days.Rule of thumb: credits = (machine rate credits/min) × (wall minutes used). We lowered both the rate (smaller classes) and the minutes (cache hits, balanced shards, selective reruns).
Recommended developer flow (run only what you need)
run_file_testswith the exact filename (e.g.,editor_group1.test.js) when you need that one file.run_file_keywordusing the auto-maintained enum (e.g.,editor,fileExplorer) to run the main test of that topic without fiddling paths.run_pr_teststo execute the small.prsuite tied to your change.rerun_failedto re-execute only the failing tests (with retries) instead of the entire suite.build_onlyorlint_onlyto get signal fast when you only changed build config or TS/JS.libs_onlyto build and test libraries in isolation.Goal: keep the feedback loop tight—start with the smallest targeted job, and only scale up when needed.
Docker images
Smarter shards
Our previous matrix was large with brute force approach, throw all the servers at the problem,

but not optimized. There was basically a lot of extra idle time per machine on paralel runs.
And also the balance between the other steps in the machine and the test run was off balance.
BAD:
Shards need to be optimize using the timing of the tests that we can fetch from the CI API so we can use less shards, less machines with idle time and fewer machines.
How it works (brief):
Why it’s good:
Example artifact (overview.txt):
NX CLOUD
Because we now control the remix-project org github, we could install the NX cloud app!! even on nx 15.7
This commit sets up Nx Cloud in the Nx workspace, enabling distributed caching and the Nx Cloud GitHub integration for fast CI and improved developer experience.
what it does and what it does NOT :)
You can access the orgs Nx Cloud workspace by going to
NX cloud
When nothing needs to be built! fun fun fun
PEFORMANCE IMPROVEMENTS
CONFIG STUFF
Deterministic caches for Nx Cloud
TODO