Mobile DevOps Build Environments
Problem and context
Mobile applications require specialized build tools and, in some cases, specialized build machines. Android applications can typically be built on a linux machine with some additional tools added. iOS applications require a macOS machine with the Apple build tools (XCode) installed. iOS applications can have dependencies on specific versions of XCode, so the ability to specify versions is needed.
Challenges
- macOS machines are needed in order to build iOS applications.
- Specific versions of XCode are often needed for iOS applications.
- macOS runners are hard to set up and configure for self-hosted customers
- New versions of macOS and Xcode are released frequently. It's important to stay up to date with the latest versions.
Iterations planned
Sequence | Proposal | Value | Done? |
---|---|---|---|
1 | macOS Runner setup guide | Provides basic setup instructions for a macOS runner | |
2 | SaaS runners on macOS | Provides shared macOS runners on gitlab.com | |
3 | Automated image release pipeline for macOS runner images | Provides more frequent image updates and ability to respond to customer feedback | |
4 | Sonoma (macOS 14) support | Provides the ability to build and test with the most recent macOS and Xcode | |
5 | Tooling to use job-images with self-managed GitLab | Provides easier set up for customers that want to run their own runners on macOS | |
6 | Dedicated runner on GitLab self-managed | Customers can choose if they want runners in a GitLab-managed cloud account or within their own cloud account. |