Using Anka to Build Anka – Example of developing locally on workstation in build and test Anka macOS VMs

Here is a peek into how our development team uses do builds for Anka product locally using Anka itself. We have all seen multiple blog posts shared by developments teams who are developing on top of Linux explaining how their developers are using containers to setup build and test environments locally on their workstations, with all upstream CI dependencies. This eliminates the “But, it works on my machine” issues, reduces failures in the upstream CI process, make it easy to reproduce environments for debugging resulting in greater velocity in application development and release.



But, most important of all, it provides flexibility to developers to install and play with newer packages, frameworks on their machines without having to worry about breaking things with the mainline application build, test, and release process.



Our development team is enjoying the same benefits while building Anka product. Since Anka is for development on the macOS platform, we are doing local builds during development inside Anka on developer machines.



Like many development teams out there, we have set up a central CI to do automated and manual builds and testing for minor and major releases of Anka Flow and Anka Build products. We do CI builds inside Anka virtual machine environment.



However, we also do a large no of internal releases to continuously try and test new things and quickly address user issues. This is largely due to two things – First, Anka is new technology and as it’s getting adopted by users there is a lot of development activities taking place to address user requests, fix bugs etc and second, in the past 2-3 months with macOS Sierra to macOS HiSierra transition, we had to continuously keep pace with all beta updates. What this means is that our developers need agility to build Anka packages locally with their changes, without having to wait for it to go through the upstream CI pipeline.



In normal circumstances, this would be impossible because of a complex matrix of dependencies that are needed to do a release build. However, because we were already doing our CI builds in reproducible Anka macOS VMs using Anka Build, our developers just pull the latest version of build VM (build_vm2(sep 5)) from the Anka Registry on their machines and run their builds inside that environment (anka run build_vm2 ./build.sh). The output Anka Build and Anka Flow application packages are available on their local machines. We use a fairly large number of external libraries and packages in our application and having them all packaged in Anka build VM that is maintained by our DevOps, frees up the developer to have whatever they want on their laptops. Our developers very quickly transitioned to HiSierra and started working with Xcode 9, while we were still compiling and building Anka on Sierra and Xcode 8.3.3.






Step1 – pull `build_vm2` from Anka registry on local machine





Step 2 – Build locally with `anka run` inside build_vm2 Anka VM






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