macOS Packer Templates for Tart

Repository with Packer templates to build macOS Tart virtual machines to use with self-hosted GitHub Actions runners, Cirrus Runners or any other automation.

The following image variants are currently available:

  • macos-{golden-gate,tahoe,sequoia,sonoma}-vanilla — a vanilla macOS installation with helpful tweaks such as auto-login, but no additional software preinstalled
  • macos-{golden-gate,tahoe,sequoia,sonoma}-base — based on macos-{golden-gate,tahoe,sequoia,sonoma}-vanilla image, it comes with brew and other useful software pre-installed, but without Xcode
  • macos-{golden-gate,tahoe,sequoia,sonoma}-xcode:N — based on macos-{golden-gate,tahoe,sequoia,sonoma}-base image and has Xcode N with Flutter pre-installed
  • macos-runner:{golden-gate,tahoe,sequoia,sonoma} — a variant of xcode:N with one or more versions of Xcode pre-installed and xcodes tool to switch between them.

See a full list of VMs available here.

Metal capabilities

Base images include the experimental Tart Metal shim, based on the Lume team's work. It is installed at /usr/local/lib/TartMetalCapabilities.dylib but is not enabled by default, including for the guest agent or tart exec.

Before starting the VM, enable unrestricted virtual-GPU features on the host as the user running Tart:

defaults write com.apple.gpusw.ParavirtualizedGraphics ForceUnrestrictedDeviceFeatureLevel -bool true

Restart an already-running VM after changing that preference. To enable the shim for one command with Apple family 9 and 64 KiB of threadgroup memory:

tart exec my-vm /usr/bin/env \
  DYLD_INSERT_LIBRARIES=/usr/local/lib/TartMetalCapabilities.dylib \
  TART_METAL_APPLE_FAMILY_MAX=1009 \
  /path/to/workload

Omit these environment variables to run normally. Each opted-in process gets its own settings; TART_METAL_APPLE_FAMILY_MAX=0 disables the capability override. Protected executables may reject injection, and GPU support depends on the host, guest, and workload.

Release Cadence

Once a new version of Xcode is released, we will initiate a GitHub release which will automatically build and push a new version of the macos-{golden-gate,tahoe,sequoia}-xcode:N images on supported macOS versions. This generally happens the next weekend after a release. Please watch this repository releases to get notified about new images.

Update Cadence

Some of the images are regularly getting rebuild in order to update the pre-installed packages.

This workflow defines images that are getting rebuilt monthly on the first Saturday of the month.

S
Description
No description provided
Readme MIT
1.1 MiB
Languages
HCL 65%
Shell 20.3%
Objective-C 12.3%
C 2.4%