macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Nikolay Edigaryev 2014de7dac
Suspend/resume support (#527)
* Suspend/resume support

* Use RuntimeError.SuspendFailed for consistency's sake

* Add a comment about "Running" field deprecation

* Use compute credits

* Use Mac-specific input devices and remove --no-{audio,entropy}

* Suspend the VM when closing window and running with --suspendable

* Snapshotting Improvements (#539)

* Don't use static field for arguments

It throws a runtime error

* Fixed suspendability

* Lazy generation of new MAC addresses

To support cloning on suspended VMs

* Refactored

* formatted

* Configurable signal for window closing

* reformatted

* Don't generate MAC only for suspended VMs

* Removed misleading comment

* Reverted

* Lock while a suspendable VM is starting

* Lock on TART_HOME

---------

Co-authored-by: Fedor Korotkov <fedor.korotkov@gmail.com>
2023-07-06 18:04:39 +00:00
.ci Revert "Revert pkg (#462)" 2023-04-06 10:36:07 -04:00
.github Added Code Owners (#328) 2022-11-17 22:57:12 -05:00
Resources Add Mullvad logo to list of users (#520) 2023-06-21 17:04:02 +04:00
Sources/tart Suspend/resume support (#527) 2023-07-06 18:04:39 +00:00
Tests/TartTests Allow to choose IP resolution strategy (#446) 2023-03-16 17:41:54 +04:00
docs Document how to remount directories on macOS guests (#537) 2023-07-03 20:21:08 +04:00
integration-tests Integration tests (#313) 2022-11-14 13:24:51 -05:00
scripts UI improvements (#459) 2023-03-31 10:58:14 -04:00
.cirrus.yml Suspend/resume support (#527) 2023-07-06 18:04:39 +00: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 Run `gon` right after building (#533) 2023-06-29 23:01:08 +04:00
.swiftformat Reformat code idents and introduce the SwiftFormat linter (#339) 2022-11-29 15:56:13 +00:00
LICENSE Relicensed under Fair Source License (#415) 2023-02-28 12:22:25 -05:00
Package.resolved PIDLock: check open(2) error (#538) 2023-07-04 15:22:25 +00:00
Package.swift PIDLock: check open(2) error (#538) 2023-07-04 15:22:25 +00:00
README.md Add Mullvad logo to list of users (#520) 2023-06-21 17:04:02 +04:00
gon.hcl Use release configuration for binaries (#453) 2023-03-29 09:58:41 -04:00
mkdocs.yml Minor docs improvements (#492) 2023-05-07 17:55:55 +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.
  • Built-in CI integration.

Tart is already adopted by several automation services:

Many more 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 12.0 (Monterey) or later (will download a 25 GB image):

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

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