We currently have 3 separate test files that each run independently, and until recently all used macos. Macos is considerably more expensive than ubuntu, and running 3 separate processes with no build cache means a lot of time downloading and rebuilding the same code.
We've done quite a bit of optimization with client code to reduce cost. I think we should apply that thinking here.
The iOS build is probably unnecessary because it just runs xcode to construct the final app, but does no testing. We could keep that step but put it in a "native test" file, that otherwise just runs the kotlin tests for iOS. That would significantly reduce build times. The other file would run Android tests.
We currently have 3 separate test files that each run independently, and until recently all used macos. Macos is considerably more expensive than ubuntu, and running 3 separate processes with no build cache means a lot of time downloading and rebuilding the same code.
We've done quite a bit of optimization with client code to reduce cost. I think we should apply that thinking here.
The iOS build is probably unnecessary because it just runs xcode to construct the final app, but does no testing. We could keep that step but put it in a "native test" file, that otherwise just runs the kotlin tests for iOS. That would significantly reduce build times. The other file would run Android tests.