iOS CI infrastructure – macOS cloud on Mac Pros with Anka Build

In our previous blog post, we discussed setting up macOS cloud for iOS CI on a mac mini cluster. Let’s now look at creating macOS cloud on mac pros for scalable and agile iOS CI. While the CPU on mac minis are much faster(as proven in various benchmarks) than existing Mac Pro models and result in a much high performing macOS cloud for iOS CI, there is still a great deal of interest in setting up iOS CI infrastructure on Mac Pros. Let’s look at how you can use Anka Build technology to very quickly set up and efficiently manage a scalable and agile macOS cloud on Mac Pros. One of the cool things about Anka Build virtualization technology is that it’s built on top of macOS Hypervisor framework and supported on all the Mac hardware. You can configure your iOS CI infrastructure on Mac minis, Mac Pro, iMac Pro, MBP or a combination of these. Download 30 Day trial at www.veertu.com.

Installing and configuring macOS cloud on Mac Pro cluster

  • Anka Build.pkg – This is a mac application package and installed on each of the Mac Pros.
  • Anka Build Controller and Anka Build Registry – This is a docker container package and installed in a VM or an AWS instance. If you set up your Mac Pros in any hosting provider, you can set up and run controller and registry modules in a Linux cloud instance.

Hosted Anka Build Cloud can be secured entirely with VPN based connectivity between on-premise CI and hosted Anka Build controller.

Step 1 – Install AnkaBuild.pkg on the Mac Pros. Check out Getting Started here.

Step 2 – Install Anka Controller.

Step 3 – Install and configure Anka Registry.

Step 4 – Create macOS cloud by joining each Mac pro(running Anka Build) to the controller. Use ‘ankacluster join’ command.

Step 5 – View your macOS cloud from controller management portal (this module is not available in the current version). We are providing a sneak peek into this controller portal through this blog. It will release in Anka version 1.2 upcoming release.

Controller Anka Build macOS cloud dashboard showing overall health

 

2 node Mac Pro macOS cluster

Step 6 – SSH or VNC into one of the Mac Pros(running Anka Build). Let’s call this the builder mac. Create your macOS VM iOS build and test iOS environment (Anka VM Templates). Full command line support is available (‘anka create’) and you can fully automate this step (‘anka create’ & ‘anka run’). In this demo, we are creating a VM with 4vCPU, 8GB RAM and all dependencies to build and test the Kickstarter iOS project. You can change VM settings (CPU, RAM, etc.) with ‘anka modify’ command.

macOS Hisierra Anka VM created on macOS Hisierra Mac Pro

Step 7 – Connect the builder Mac Pro to Anka Registry and push the prepared VM template to this central private macOS cloud registry. You can tag (version) and use it as a base VM to create new environments(with different tags) and store and manage them in the registry.

Latest tagged version of Hisierraga VM template in the Registry

Step 8 – If you use Jenkins for your CI, install the Anka Build Jenkins plugin. For any other CI system, use the controller REST APIs to integrate. If you use hosted CI services like Buildkite or Gitlab CI, contact us to get additional details on integration. Check out details on Jenkins plugin here.

Step 9 – Check the health of all Anka Build components in the controller portal.

Step 10 – Let’s do a test run. I will launch multiple macOS VMs on my 2 Mac Pro node macOS Anka Build cloud.

Manually creating on-demand VMs

 

On-demand launched Anka macOS Vms on Anka Build cloud

Step 11 – Now, let’s create a real job queue in Jenkins to run on this multi-node Mac Pro Anka Build cloud. Jenkins Anka Build plugin instantly launches clean VMs on the Anka Build cloud, and when the build job finishes, the VM dies. Next job starts a fresh VM.

Kickstarter iOS project jobs in Jenkins

 

Automatically launched clean Anka VMs from Jenkins

 

Jenkins job running in Anka VMs

 

On-demand clean Anka VMs launched automatically for Kickstarter Jenkins Jobs

Every iOS CI build or test job request instantly gets a clean, consistent macOS VM environment. Test new versions of Xcode, iOS SDKs by creating new tagged Anka VM from a base template, manage them in the registry and use them for your CI jobs. Scale up the capacity by easily adding additional Mac Pros to the existing Anka Build cloud cluster.

Share this post

networking-performancev1
Unlocking Superior macOS VM Network Performance: Introducing Anka's new networking mode for Apple Silicon
Large and complex enterprises using Anka have many different demands, and we have worked to continue to develop innovative technology to meet these demands. Enterprise infrastructure hardware is often on the cutting edge, and they need advanced capabilities...
Read More
gitlab-with-anka
Anka Cloud Gitlab Executor
Veertu’s Anka and the new Anka Cloud Gitlab Executor Veertu’s Anka is a suite of software tools built on the macOS virtualization platform. It enables the execution of single or multi-use macOS virtual machines (VMs) in a manner similar to Docker....
Read More
mac-scan-v1
Real-Time CVE Scanning of your macOS Build Systems
It’s common that an organization’s macOS build system will download thousands, sometimes tens of thousands of third-party dependencies every hour. When building and testing iOS applications, it typically downloads and installs third-party...
Read More
anka-on-silicon-v1
The ONLY Fully Automated Apple Silicon macOS VM Creation Solution
Starting in Anka 3.1 we announced that Anka is now able to fully automate the macOS installation processes, disabling SIP, and enabling VNC — all previously manual steps users had to perform inside o the VM. At the time of writing this article,...
Read More
anka_click
Scripting macOS UI User Actions With Anka Click
Starting in Anka 3.2, we’ve introduced a solution for scripting macOS UI user actions. You may ask, “Why would I want to do that?”. Well, often macOS configuration and applications do not have a CLI allowing you to perform certain actions...
Read More
mac-scan-fullscan-shells-v3
Real-time, continuous scan of file downloads on macOS for security vulnerabilities
Today, we are announcing the Beta availability of the Mac Scan solution. Mac Scan software runs on macOS systems (bare metal, virtual, EC2 Mac) and scans downloads in real time for security vulnerabilities. There are multiple scenarios why you would...
Read More
Screen Shot 2022-10-17 at 10.13
Anka 3.1- Fully automated VM macOS installation & The Behavior-Driven macOS UI Automation Framework
We are very happy to announce the General Availability of Anka 3.1 for Apple Silicon / ARM macs. In this release, we are taking our approach to iOS CI automation one step further by introducing a Behavior-Driven macOS UI Automation Framework in Anka,...
Read More
ankam1v2
Migrating from Anka on Intel to Anka on M1 Mac for iOS CI
In this blog, we will cover the key topics for migrating from Anka on Intel to Anka on M1/M2 Macs. Anka is an IaaC solution from Veertu to set up an agile Container like CI for iOS CI using macOS VMs. Anka for Intel uses Apple’s Hypervisor.Framework virtualization...
Read More
ami-scanner-featured-v2
World's first Security Vulnerability scanner for EC2 Mac AMIs
We are excited to announce the General Availability of the world’s first security vulnerability scanner for EC2 Mac AMIs. EC2 Mac AMI Scan scans Intel and Apple Silicon macOS EC2 AMIs, detects security vulnerabilities in third-party packages, dependencies,...
Read More
esxi-to-anka
It's time to migrate your iOS CI from ESXi Virtual Mac Infrastructure to native macOS Virtualization
When VMWare ESXi started officially supporting Apple macOS Virtualization on Mac hardware in late 2012, it opened the doors for the possibility of iOS development to move to a Linux-like, agile, scalable CI infrastructure. Soon enough, many iOS enterprise...
Read More