Continuous Integration (CI) is the process of merging developers' working copies into a shared codebase several times a day or on every pull request. Before each merge, the code is compiled and tested to ensure that the new additions don’t create any breaking changes to the overall codebase.
CI is a part of an overall DevOps workflow and allows teams to ship more features, faster, and with fewer bugs. This process is widely adopted in software development but is sometimes slow to reach iOS and Mac app development given the difficulty of managing DIY Apple hardware (required for Xcode builds).
Whether you’re using Jenkins, BuildKite, GitLab CI, GitHub Actions, TeamCity, or any of the other CI orchestration tools that exist, you’ll need to have access to macOS build machines (often called runners, workers, or agents). Of course, macOS only runs on genuine Apple Mac computers, which is where MacStadium comes in! We can provide the infrastructure and help you connect to your CI orchestration software.
When you’re just starting out, one or two Mac minis at MacStadium might be a great way to provide your team with an always-on Mac build machine (instead of keeping it under your desk). It’s inexpensive and easy to set up.
As your team grows, codebases and testing become more complex and PRs get more frequent. You can either start exploring virtualized Mac clouds for added stability and automation or just keep adding Macs and look for tools to automate bare metal clouds.
Large teams need fully-automated, high-performance, reliable, and secure CI infrastructure that can scale as fast as their team. MacStadium supports the largest apps in the world with multiple options for creating scalable Mac clouds with enterprise features.
Contact us and a solution consultant will reach out to help you pick the right infrastructure for your team’s CI workloads.
Bazel is an open-source build and test tool many companies are adopting to speed up CI workflows and make their teams more productive. Bazel optimizes your builds and tests and allows for better parallelization across multiple build machines.
Once you have adopted Bazel and set up a build cache as part of your MacStadium CI cloud, you can take it one step further and improve developer workflows by moving ALL builds to the cloud (not just builds associated with PRs). This saves developers time throughout the development process and keeps their laptops from sounding like a jet engine at takeoff!
Setting this up requires a few tricks, but MacStadium’s DevOps experts are here to help.
Continuous delivery (CD) is another part of the overall practice of DevOps. CD refers to shipping app updates as often as possible. Ideally, this would be continuous as new code is successfully integrated, but CD is never quite continuous in the world of iOS and Mac apps. Instead, teams develop workflows to automatically ship app updates to the App Store (or push updates to users) on a regular, frequent cadence.
The process of submitting apps to Apple’s App Store can be automated and dramatically sped up with tools like fastlane, but will require a Mac no matter what you do. You can set up an end-to-end CI/CD pipeline at MacStadium by adding release automation servers to your CI build infrastructure.