Skip to content

Latest commit

 

History

537 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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-{tahoe,sequoia,sonoma}-xcode:N — based on macos-{tahoe,sequoia,sonoma}-base image and has Xcode N with Flutter pre-installed
  • macos-runner:{tahoe,sequoia,sonoma} — a variant of xcode:N with several 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-{tahoe,sequoia}-xcode:N. 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.

About

No description or website provided.

Topics

Resources

Stars

366 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages