• By Brentley Jones Background The Reddit iOS project requires macOS hosts to build and test since it depends on Xcode/Apple SDKs. • Because of this, our CI agents also needed to run macOS. • Mac hardware is expensive compared to typical CI hardware, be it cloud or bare metal. • As part of the mobile teams migrating to Buildkite as our CI provider we decided to create a proof of concept that utilized Bazel multi-platform remote build execution (RBE) , which would allow us to use Linux CI agents while still building and testing on macOS. • There are relatively few companies that use RBE for iOS projects, and none are publicly known to use multi-platform RBE. • The proof of concept showed that it would be possible to use Linux CI agents, be easier to maintain, be approximately as performant (or more likely more performant) than our current solution, and be more efficient with our compute spend.

Article Summaries:

  • Reddit’s iOS team has shifted its continuous‑integration workflow to Buildkite by adopting Bazel’s multi‑platform remote build execution (RBE). Historically the project required macOS hosts to compile and test with Xcode, driving up hardware costs. The proof‑of‑concept demonstrated that Linux agents could submit builds to macOS RBE workers, delivering comparable or better performance while reducing compute spend. With these results, Reddit migrated both to a new CI provider and to multi‑platform RBE, improving maintainability and cost efficiency for its iOS builds.

Sources: