macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Tor Arne Vestbø 2b33b8f9e6
Report progress when downloading IPSW files (#768)
The URLSession async/await functions do not report progress through
the normal URLSessionTaskDelegate callbacks, as reported in:

 https://developer.apple.com/forums/thread/723015

We don't want to use URLSession.bytes, as that results in a much
slower download speed compared to URLSession.download, but we can
work around the lack of progress callbacks by observing the
progress on the URLSessionTask itself.

Fixes #767
2024-03-28 19:15:06 +04:00
.ci Lowercase `tart.app` (#751) 2024-03-11 12:23:12 -04:00
.github
Resources Fix the --insecure flag issue by disabling ATS in Info.plist (#760) 2024-03-19 03:42:14 -04:00
Sources/tart Report progress when downloading IPSW files (#768) 2024-03-28 19:15:06 +04:00
Tests/TartTests DHCP MAC-address resolver: handle duplicate leases (#740) 2024-02-23 16:49:06 +04:00
benchmark Introduce Golang-based benchmarking utility (#769) 2024-03-27 18:45:01 +04:00
docs Update Platinum Tier (#741) 2024-02-23 15:27:30 +00:00
integration-tests integration-tests: test_run() with --no-graphics (#757) 2024-03-12 15:12:02 +04:00
scripts Lowercase `tart.app` (#751) 2024-03-11 12:23:12 -04:00
.cirrus.yml Improve macOS app integration (#746) 2024-03-11 09:05:56 -04:00
.editorconfig
.gitignore
.goreleaser.yml goreleaser: set up automatic installation of shell completion files (#766) 2024-03-26 12:08:09 +04:00
.swiftformat
CONTRIBUTING.md
LICENSE
Package.resolved MAC address resolver: skip expired leases (#669) 2023-11-27 10:12:36 -05:00
Package.swift MAC address resolver: skip expired leases (#669) 2023-11-27 10:12:36 -05:00
README.md Some SEO optimizations (#720) 2024-01-24 12:15:06 -05:00
gon.hcl Build x86 binary (#716) 2024-01-26 13:09:05 +00:00
mkdocs.yml Document Buildkite Tart Plugin (#677) 2023-12-01 15:35:45 +00:00

README.md

Tart is a virtualization toolset to build, run and manage macOS and Linux virtual machines (VMs) on Apple Silicon. Built by CI engineers for your automation needs. Here are some highlights of Tart:

  • Tart uses Apple's own Virtualization.Framework for near-native performance.
  • Push/Pull virtual machines from any OCI-compatible container registry.
  • Use Tart Packer Plugin to automate VM creation.
  • Easily integrates with any CI system.

Tart powers Cirrus Runners service — a drop-in replacement for the standard GitHub-hosted runners, offering 2-3 times better performance for a fraction of the price.

Many companies are using Tart in their internal setups. Here are a few of them:

Note: If your company or project is using Tart please consider adding yourself to the list above.

Usage

Try running a Tart VM on your Apple Silicon device running macOS 13.0 (Ventura) or later (will download a 25 GB image):

brew install cirruslabs/cli/tart
tart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base
tart run sonoma-base

Please check the official documentation for more information and/or feel free to use discussions for remaining questions.