Anka is a powerful but simple virtualization engine for continuous integration on macOS. Anka is built on Mac, so it works on most Mac hardware and most versions of macOS. It is designed specifically to accommodate Mac-based CI workflows, and Anka easily integrates with existing container-based DevOps CI pipelines.

It works by spinning up a new VM on each call from the CI build agent associated with the repository you're building from. You create pre-defined templates for the VM type you need for a given job. The VM type is then specified in the call from the build agent. This allows you to have a consistent build environment to ensure the validity of your tests.

Check the full Anka Documentation for additional details.

Anka Components

NOTE: We highly recommend allowing us to deploy and maintain each of the following components in MacStadium data centers, as we can guarantee peak performance when the system is deployed in our standard configuration.

Anka virtualizes macOS to enable simple and automated DevOps workflows when working with macOS virtual machines and physical iOS devices.

Anka Hypervisor

The core of the Anka toolset is a native macOS hypervisor that leverages Apple’s macOS hypervisor.framework for virtualization. This hypervisor includes PV network and disk drivers that are required for high performance operations inside the Anka VMs.

Anka Registry

Based on the container concept, Anka Registry provides an easy way to store, version, and distribute macOS VMs that are used for CI and development. Once you’ve setup your VMs, a command can be used to upload or download a VM to the Registry. INSTANT START feature can also enable VMs stored in the Registry to quickly boot after distribution.

Anka Controller

Anka Controller is the central management system of Anka Build and provides a simple and extensible interface for provisioning and managing on-demand macOS VMs on a cluster of Mac hardware (Anka Build nodes). If you use a contemporary CI tool like Buildkite or GitLab CI, you can integrate it with Anka Controller using controller REST APIs to provision macOS VMs on-demand for CI job requests.

Anka Interfaces

Jenkins Plugin

The Anka Jenkins plugin provides a quick way to integrate Anka with Jenkins for iOS/macOS CI workflows using your own private cloud. Anka VMs can be allocated on-demand for execution of Jenkins build/test jobs and pipelines.

Command Line Interface

The Anka virtualization application package comes with a command line interface that allows for easy, straightforward management of guest virtual machines. Combined with the powerful CLI, Anka makes virtualization extremely fast and reliable.

Anka Flow Interface for Developers

Anka is purpose-built to support macOS and iOS development workflows. Developers can pull build/test VMs (built with all dependencies) on their laptops from a central registry and use them locally. A shared file system enables direct build execution inside the VM from the host.

Anka features

Instant Start

Anka’s INSTANT START feature enables VMs stored in the Registry to boot in less than a second for on-demand provisioning.

USB for On-device Testing

Anka provides the ability to manage and execute tests (e.g. through XCTest) on multiple physical mobile devices connected to the host through Anka VMs. Use the Anka USB command to manage real devices connected through the USB interface.

TeamCity Plugin

The Anka TeamCity plugin provides a quick way to integrate Anka with TeamCity for iOS/macOS CI workflows using your own private cloud. Anka VMs can be allocated on-demand for execution of TeamCity build and test projects.