Skip to content

chore(ci): make local_ci.sh faster on many-core machines - #149

Merged
cmdaltctr merged 2 commits into
v3from
fix/faster-local-ci
Oct 29, 2026
Merged

cmdaltctr merged 2 commits into
v3from
fix/faster-local-ci

Conversation

@cmdaltctr

Copy link
Copy Markdown
Owner

Summary

Makes ./scripts/local_ci.sh faster on a machine with many cores. CI jobs do not change.

  • Split the two slowest test files (028374f6). --dist loadfile keeps each file on one worker, so tests/test_mcp_tools.py (64 s) set the floor of the parallel suite.
    • test_mcp_tools.py is now 3 files and test_retrieval.py is now 2, split by topic. The slowest single test file drops from 64 s to 35 s.
    • The same 87 tests run under the same names, so the tripwire pins do not change.
    • The logging-isolation fixtures stay with the entry-point tests (TDR-017), and the order-pair check in tests/TEST_README.md still passes.
    • The shared result and ingest helpers move to conftest.py, next to connected_client.
  • Run the frontend gates beside the Python suite (d06b7bd3).
    • The web lint, typecheck, tests, build and wheel check run in the background. Their output prints after the tripwire.
    • A failure stops the script with its exit code, and the EXIT trap stops the background job.
    • OMRS_CI_WORKERS sets the pytest worker cap. The default stays 8, as in CI. AGENTS.md notes both.

Timings

The before and after runs alternated on one Mac (18 cores). The before runs used v3 with its own environment, and the after runs used OMRS_CI_WORKERS=16. The load average was between 12 and 41, so these numbers are noisy.

Run 1 Run 2
Before 145 s 140 s
After 129 s 108 s

After the rebase onto v3 at 8f401b75, local_ci.sh passed in 105 s with no SKIPPED step. Python had 9,440 passed and 149 skipped, and the web had 2,205 tests.

The saving is about 25 s, less than estimated. The web gates and pytest now share the cores, which slows the Python suite.

--dist loadfile keeps each file on one worker, so test_mcp_tools.py
(64 s) set the floor of the parallel suite. Split it into three files
and test_retrieval.py into two, by topic. Test names and counts do not
change. The logging-isolation fixtures stay in test_mcp_tools.py with
the entry-point tests (TDR-017). The shared result and ingest helpers
move to conftest next to connected_client.
The frontend gates and the web wheel check share nothing with the Python
suite, so they now run in the background and print after the tripwire.
A failure stops the script with their exit code, and the EXIT trap stops
the background job. OMRS_CI_WORKERS sets the pytest worker cap (default
8, as in CI).

Timed against v3 in alternating runs (load average 12 to 41): 145 s and
140 s before, 129 s and 108 s after (16 workers).
@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 3 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 8f401b7 and d06b7bd.

Files selected for processing: 9
  • AGENTS.md
  • scripts/local_ci.sh
  • tests/TEST_README.md
  • tests/conftest.py
  • tests/test_mcp_tools.py
  • tests/test_mcp_tools_collections.py
  • tests/test_mcp_tools_search.py
  • tests/test_retrieval.py
  • tests/test_retrieval_rerank.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@codecov

codecov Bot commented Oct 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.80%. Comparing base (8f401b7) to head (d06b7bd).
✅ All tests successful. No failed tests found.

❌ Your project check has failed because the head coverage (94.37%) is below the target coverage (95.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##               v3     #149   +/-   ##
=======================================
  Coverage   94.80%   94.80%           
=======================================
  Files         370      370           
  Lines       30049    30049           
  Branches     3845     3845           
=======================================
+ Hits        28487    28488    +1     
+ Misses       1029     1028    -1     
  Partials      533      533           

see 1 file with indirect coverage changes

@cmdaltctr
cmdaltctr merged commit 37096f6 into v3 Oct 29, 2026
17 checks passed
@cmdaltctr
cmdaltctr deleted the fix/faster-local-ci branch October 29, 2026 19:33
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.

1 participant