macOS and Linux VMs on Apple Silicon to use in CI and other automations
Go to file
Tor Arne Vestbø 0b693f6bc9
Improve macOS app integration (#746)
* Improve macOS app integration

Tart is now a proper application bundle, with the name and icon
declared in the Info.plist, which we were missing.

This also allows us to declare the app as LSBackgroundOnly
as a default, which means that 'tart create' and similar
background commands will not show the application icon in
the dock, while 'tart run' will, thanks to it overriding
the activation policy of the app.

For now the logic of creating the Tart.app bundle is duplicated
between the CI packaging scripts and the run-signed.sh script.
Now that these scripts are growing, it makes sense to look
at whether we can share the logic somehow, e.g. by building
the application bundle directly during build, and packaging
that, instead of creating it as a post install step.

* Integration tests: fix DockerContainer import

To work around the breaking change in 4.0.0,
see 383b12e9d6.

* .cirrus.yml(Release (Dry Run)): no need to install Sentry CLI

---------

Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
2024-03-11 09:05:56 -04:00
.ci Improve macOS app integration (#746) 2024-03-11 09:05:56 -04:00
.github Added Code Owners (#328) 2022-11-17 22:57:12 -05:00
Resources Improve macOS app integration (#746) 2024-03-11 09:05:56 -04:00
Sources/tart Improve macOS app integration (#746) 2024-03-11 09:05:56 -04:00
Tests/TartTests DHCP MAC-address resolver: handle duplicate leases (#740) 2024-02-23 16:49:06 +04:00
docs Update Platinum Tier (#741) 2024-02-23 15:27:30 +00:00
integration-tests Improve macOS app integration (#746) 2024-03-11 09:05:56 -04:00
scripts Improve macOS app integration (#746) 2024-03-11 09:05:56 -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 Build x86 binary (#716) 2024-01-26 13:09:05 +00: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.