macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Tor Arne Vestbø d8b010c79c
Support cancellation of installation process (#770)
We wrap the installation with a withTaskCancellationHandler, which
ensures that the SIGINT signal handling code in main() will trigger
a cancellation of the installer.

As the VZMacOSInstaller must be both created and interacted with
on the VM's queue, which in our case is the main queue, we need
to move the logic to a separate function tagged with @MainActor.
This makes sense either way, as it cleans up the code a bit.
2024-03-28 00:14:33 +04:00
.ci Lowercase `tart.app` (#751) 2024-03-11 12:23:12 -04:00
.github Added Code Owners (#328) 2022-11-17 22:57:12 -05:00
Resources Fix the --insecure flag issue by disabling ATS in Info.plist (#760) 2024-03-19 03:42:14 -04:00
Sources/tart Support cancellation of installation process (#770) 2024-03-28 00:14:33 +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 Update dependencies and styles (#12) 2022-03-24 18:54:49 +03:00
.gitignore Move FAQ to documentation website (#383) 2023-01-18 11:58:21 -05:00
.goreleaser.yml goreleaser: set up automatic installation of shell completion files (#766) 2024-03-26 12:08:09 +04:00
.swiftformat Reformat code idents and introduce the SwiftFormat linter (#339) 2022-11-29 15:56:13 +00:00
CONTRIBUTING.md Add CONTRIBUTING.md? (#575) 2023-08-03 13:10:34 -04:00
LICENSE Relicensed under Fair Source License (#415) 2023-02-28 12:22:25 -05:00
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.