You can do all three without a Mac, but they're separate problems and no single tool covers them.
Build and test. The Xcode toolchain only runs on macOS, so something has to run it for you. We use mac.doublespeed.ai (disclosure: Iwork there). It's a fleet of Mac minis behind an API. From Linux or Windows you install a CLI (npm i -g @doublespeed/ds), then ds xcode build . / ds xcode test . uploads your project, runs xcodebuild on a Mac, and streams the result back; ds xcode run . boots the app in an iOS Simulator and gives you a browser link to interact with it. It works with React Native, Expo and CocoaPods projects as well as native Swift. Billing is per second of Mac time, and there's a GitHub Action so the same build/test runs as a PR check from an ordinary Linux runner. Published timings vs GitHub-hosted macOS runners are at mac.doublespeed.ai/benchmark.
Topic:
Developer Tools & Services
SubTopic:
Instruments