Right now we show only actual size of files on disk which excludes empty blocks of the recently introduced sparced format in #671. This makes impossible to get info about disk size that we just set via `tart set`. Here is an example of `tart list` output before the change: ``` Source Name Size State local sonoma-base 22 stopped local sonoma-vanilla 18 stopped local sonoma-xcode 67 stopped local ubuntu 1 stopped oci ghcr.io/cirruslabs/macos-sonoma-base:latest 22 stopped oci ghcr.io/cirruslabs/macos-sonoma-base@sha256:16c1593bbaf787b20b3c0bc094c5b6baf71c937d22c2e4596da85ac55c92e6cc 22 stopped oci ghcr.io/cirruslabs/macos-sonoma-vanilla:14.3 17 stopped oci ghcr.io/cirruslabs/macos-sonoma-vanilla@sha256:23c4e853d48d00a4333346d66a32b2b5aad900cc0dc10e7ecb9dbe67b6f587f4 17 stopped oci ghcr.io/cirruslabs/macos-sonoma-xcode:latest 67 stopped oci ghcr.io/cirruslabs/macos-sonoma-xcode@sha256:d0cb8d01424a68b89e0f16f5371bf2152b2c115bd886341a6ba8da42121d1f41 67 stopped oci ghcr.io/cirruslabs/ubuntu:22.04 1 stopped oci ghcr.io/cirruslabs/ubuntu@sha256:037763feb7a15d6077edeb7a097738c34313637d16036764b4c196d28d8b429c 1 stopped ``` And here is the output after the change: ``` Source Name Disk Size State local sonoma-base 50 22 stopped local sonoma-vanilla 50 18 stopped local sonoma-xcode 90 67 stopped local ubuntu 20 1 stopped oci ghcr.io/cirruslabs/macos-sonoma-base:latest 50 22 stopped oci ghcr.io/cirruslabs/macos-sonoma-base@sha256:16c1593bbaf787b20b3c0bc094c5b6baf71c937d22c2e4596da85ac55c92e6cc 50 22 stopped oci ghcr.io/cirruslabs/macos-sonoma-vanilla:14.3 50 17 stopped oci ghcr.io/cirruslabs/macos-sonoma-vanilla@sha256:23c4e853d48d00a4333346d66a32b2b5aad900cc0dc10e7ecb9dbe67b6f587f4 50 17 stopped oci ghcr.io/cirruslabs/macos-sonoma-xcode:latest 90 67 stopped oci ghcr.io/cirruslabs/macos-sonoma-xcode@sha256:d0cb8d01424a68b89e0f16f5371bf2152b2c115bd886341a6ba8da42121d1f41 90 67 stopped oci ghcr.io/cirruslabs/ubuntu:22.04 20 1 stopped oci ghcr.io/cirruslabs/ubuntu@sha256:037763feb7a15d6077edeb7a097738c34313637d16036764b4c196d28d8b429c 20 1 stopped ``` Additionally, `tart get` will print actual size with a 3 decimal point precision which will help to track growth in disk images for our templates. `tart get` before: ``` CPU Memory Disk Display State 4 8192 67 1024x768 stopped ``` `tart get` after: ``` CPU Memory Disk Size Display State 4 8192 90 67.333 1024x768 stopped ``` |
||
|---|---|---|
| .ci | ||
| .github | ||
| Resources | ||
| Sources/tart | ||
| Tests/TartTests | ||
| docs | ||
| integration-tests | ||
| scripts | ||
| .cirrus.yml | ||
| .editorconfig | ||
| .gitignore | ||
| .goreleaser.yml | ||
| .swiftformat | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| Package.resolved | ||
| Package.swift | ||
| README.md | ||
| gon.hcl | ||
| mkdocs.yml | ||
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.Frameworkfor 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.