Anka是一个强大但简单的虚拟化引擎,用于在macOS上进行持续集成。Anka是在Mac上构建的,所以它可以在大多数Mac硬件和大多数版本的macOS上运行。它是专门为适应基于Mac的CI工作流而设计的,Anka可以轻松地与现有的基于容器的DevOps CI管道集成。

它的工作原理是,在每次调用与您从中构建的存储库关联的CI构建代理时,都会启动一个新的VM。您可以为给定作业所需的VM类型创建预定义的模板。然后在来自生成代理的调用中指定VM类型。这允许您拥有一致的构建环境,以确保测试的有效性。

检查完整的Anka文档了解更多详细信息。

Anka组件

注:我们强烈建议允许我们在MacStadium数据中心中部署和维护以下每个组件,因为当系统以标准配置部署时,我们可以保证最高性能。

安卡在使用macOS虚拟机和物理iOS设备时,虚拟化macOS以实现简单和自动化的DevOps工作流。

安卡管理程序

Anka工具集的核心是一个本地macOS虚拟机监控程序,它利用苹果的macOS hypervisor.framework进行虚拟化。该虚拟机监控程序包括Anka VM内高性能操作所需的PV网络和磁盘驱动程序。

Anka注册

基于容器概念,Anka Registry提供了一种简单的方法来存储、版本化和分发用于CI和开发的macOS VM。设置好虚拟机后,可以使用命令将虚拟机上载或下载到注册表。INSTANT START功能还可以使存储在注册表中的虚拟机在分发后快速启动。

Anka控制器

Anka Controller是Anka Build的中央管理系统,它提供了一个简单且可扩展的接口,用于在Mac硬件集群(Anka-Build节点)上配置和管理按需macOS VM。如果您使用当代CI工具(如Buildkite或GitLab CI),则可以使用控制器REST API将其与Anka Controller集成,以按需为CI作业请求提供macOS VM。

Anka接口

Jenkins插件

Anka Jenkins插件提供了一种快速方法,可以使用您自己的私有云将Anka与Jankins集成到iOS/macOS CI工作流中。Anka VM可以按需分配,以执行Jenkins构建/测试作业和管道。

命令行界面

Anka虚拟化应用程序包带有一个命令行界面,允许轻松、直接地管理来宾虚拟机。结合强大的CLI,Anka使虚拟化变得非常快速和可靠。

开发人员Anka Flow接口

Anka旨在支持macOS和iOS开发工作流。开发人员可以从中央注册表中提取笔记本电脑上的构建/测试虚拟机(使用所有依赖项构建),并在本地使用它们。共享文件系统支持从主机在VM内直接执行构建。

Anka特征

即时启动

Anka的INSTANT START功能使存储在注册表中的虚拟机能够在不到一秒钟的时间内启动以进行按需供应。

用于设备上测试的USB

Anka提供了在通过Anka VM连接到主机的多个物理移动设备上管理和执行测试(例如通过XCTest)的能力。使用Anka USB命令管理通过USB接口连接的真实设备。

TeamCity插件

Anka TeamCity插件提供了一种使用您自己的私有云将Anka与TeamCityforiOS/macOS CI工作流集成的快速方法。Anka虚拟机可以按需分配,以执行TeamCity构建和测试项目。