File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -476,22 +476,41 @@ fn main() -> Result<()> {
476476
477477 // TODO: This doesn't work on at least user Linux machines, because something here apparently uses `sudo`?
478478
479- // Exclude smoketests from `cargo test --all` since they require pre-built binaries.
480- // Smoketests have their own dedicated command: `cargo ci smoketests`
481- cmd ! (
482- "cargo" ,
483- "test" ,
484- "--all" ,
485- "--exclude" ,
486- "spacetimedb-smoketests" ,
487- "--exclude" ,
488- "spacetimedb-sdk" ,
489- "--" ,
490- "--test-threads=2" ,
491- "--skip" ,
492- "unreal"
493- )
494- . run ( ) ?;
479+ // Run tests crate-by-crate to prevent memory accumulation and OOM in CI.
480+ // This replaces `cargo test --all` which accumulates 10GB+ memory.
481+ // Each crate runs in a separate process, ensuring memory is freed between crates.
482+ let crates_to_test = [
483+ "spacetimedb-sats" ,
484+ "spacetimedb-data-structures" ,
485+ "spacetimedb-metrics" ,
486+ "spacetimedb-primitives" ,
487+ "spacetimedb-schema" ,
488+ "spacetimedb-table" ,
489+ "spacetimedb-sql-parser" ,
490+ "spacetimedb-expr" ,
491+ "spacetimedb-lib" ,
492+ "spacetimedb-standalone" ,
493+ "spacetimedb-testing" ,
494+ "spacetimedb-cli" ,
495+ "spacetimedb-client-api" ,
496+ "spacetimedb-core" ,
497+ "spacetimedb" ,
498+ ] ;
499+
500+ for crate_name in crates_to_test {
501+ println ! ( "Running tests for crate: {}" , crate_name) ;
502+ cmd ! (
503+ "cargo" ,
504+ "test" ,
505+ "-p" ,
506+ crate_name,
507+ "--" ,
508+ "--test-threads=1" ,
509+ "--skip" ,
510+ "unreal"
511+ )
512+ . run ( ) ?;
513+ }
495514 // SDK procedure tests intentionally make localhost HTTP requests.
496515 cmd ! (
497516 "cargo" ,
You can’t perform that action at this time.
0 commit comments