Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

570 Commits

Folders and files

Repository files navigation

Assuming TART is already installed, and this file exists: ~/Downloads/Xcode_27_Universal.xip (or Xcode_27.xip renamed to Xcode_27_Universal.xip ... or Xcode_26.6_Universal.xip to use an older version) => download from https://developer.apple.com/download/all/ )

  • brew update
  • brew upgrade
  • brew tap hashicorp/tap
  • brew trust hashicorp/tap
  • brew install hashicorp/tap/packer
  • packer --version (... if/when out-of-date (see hashicorp/homebrew-tap#365 ), brew uninstall hashicorp/tap/packer + brew untap hashicorp/tap and manual install from https://developer.hashicorp.com/packer/install or https://www.packer.io/downloads )
  • git clone https://github.com/danielweck/macos-image-templates.git tart-macos-image-templates_DANIELWECK
  • cd tart-macos-image-templates_DANIELWECK/
  • tart list
  • packer init templates/vanilla-golden-gate.pkr.hcl
  • packer build templates/vanilla-golden-gate.pkr.hcl
  • tart list
  • tart clone golden-gate-vanilla golden-gate-base
  • tart list
  • packer init "templates/disable-sip-with-username.pkr.hcl"
  • packer build -var vm_name="golden-gate-base" "templates/disable-sip-with-username.pkr.hcl"
  • tart list
  • packer init templates/base.pkr.hcl
  • packer build -var vm_name="golden-gate-base" templates/base.pkr.hcl
  • tart list
  • packer init "templates/enable-sip-with-username.pkr.hcl"
  • packer build -var vm_name="golden-gate-base" "templates/enable-sip-with-username.pkr.hcl"
  • tart list
  • packer init templates/xcode.pkr.hcl
  • packer build -var xcode_version="[\"27\"]" -var xcode_components="[]" templates/xcode.pkr.hcl (or 26.6 instead of 27)

xcode_components = \"MetalToolchain\" ==> xcodebuild -downloadComponent MetalToolchain ==> xcodebuild: error: Failed fetching catalog for assetType (com.apple.MobileAsset.MetalToolchain)

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages