From 280a31f7079e490b36e4cce91a860015e47d366c Mon Sep 17 00:00:00 2001 From: fedor Date: Sun, 4 May 2025 20:49:23 -0400 Subject: [PATCH] Update docs, examples and CI to Sequoia --- .cirrus.yml | 10 +++++----- README.md | 4 ++-- Sources/tart/Commands/Run.swift | 2 +- docs/integrations/buildkite.md | 4 ++-- docs/integrations/cirrus-cli.md | 4 ++-- docs/integrations/gitlab-runner.md | 2 +- docs/integrations/vm-management.md | 8 ++++---- docs/orchard/integration-guide.md | 4 ++-- docs/orchard/quick-start.md | 12 ++++++------ docs/quick-start.md | 18 +++++++++++------- scripts/run-signed.sh | 2 +- 11 files changed, 37 insertions(+), 33 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index d67b1be..c472ebd 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,7 +1,7 @@ use_compute_credits: true task: - name: Test on Sonoma + name: Test on Sequoia alias: test persistent_worker: labels: @@ -37,7 +37,7 @@ task: name: Lint alias: lint macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sonoma + image: ghcr.io/cirruslabs/macos-runner:sequoia lint_script: - swift package plugin --allow-writing-to-package-directory swiftformat --cache ignore --lint --report swiftformat.json . always: @@ -54,7 +54,7 @@ task: name: Build ($BUILD_ARCH) alias: build macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sonoma + image: ghcr.io/cirruslabs/macos-runner:sequoia build_script: swift build --arch $BUILD_ARCH --product tart sign_script: codesign --sign - --entitlements Resources/tart-dev.entitlements --force .build/$BUILD_ARCH-apple-macosx/debug/tart binary_artifacts: @@ -67,7 +67,7 @@ task: - lint - build macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sonoma + image: ghcr.io/cirruslabs/macos-runner:sequoia env: MACOS_CERTIFICATE: ENCRYPTED[552b9d275d1c2bdbc1bff778b104a8f9a53cbd0d59344d4b7f6d0ca3c811a5cefb97bef9ba0ef31c219cb07bdacdd2c2] AC_PASSWORD: ENCRYPTED[4a761023e7e06fe2eb350c8b6e8e7ca961af193cb9ba47605f25f1d353abc3142606f412e405be48fd897a78787ea8c2] @@ -102,7 +102,7 @@ task: - test - build macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sonoma + image: ghcr.io/cirruslabs/macos-runner:sequoia env: MACOS_CERTIFICATE: ENCRYPTED[552b9d275d1c2bdbc1bff778b104a8f9a53cbd0d59344d4b7f6d0ca3c811a5cefb97bef9ba0ef31c219cb07bdacdd2c2] AC_PASSWORD: ENCRYPTED[4a761023e7e06fe2eb350c8b6e8e7ca961af193cb9ba47605f25f1d353abc3142606f412e405be48fd897a78787ea8c2] diff --git a/README.md b/README.md index 3c7b882..f9b2914 100644 --- a/README.md +++ b/README.md @@ -66,8 +66,8 @@ Try running a Tart VM on your Apple Silicon device running macOS 13.0 (Ventura) ```bash brew install cirruslabs/cli/tart -tart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base -tart run sonoma-base +tart clone ghcr.io/cirruslabs/macos-sequoia-base:latest sequoia-base +tart run sequoia-base ``` Please check the [official documentation](https://tart.run) for more information and/or feel free to use [discussions](https://github.com/cirruslabs/tart/discussions) diff --git a/Sources/tart/Commands/Run.swift b/Sources/tart/Commands/Run.swift index 44a2b2a..56b264f 100644 --- a/Sources/tart/Commands/Run.swift +++ b/Sources/tart/Commands/Run.swift @@ -138,7 +138,7 @@ struct Run: AsyncParsableCommand { To work around this pass TART_HOME explicitly: - sudo TART_HOME="$HOME/.tart" tart run sonoma --disk=/dev/disk0 + sudo TART_HOME="$HOME/.tart" tart run sequoia --disk=/dev/disk0 """, valueName: "path[:options]")) var disk: [String] = [] diff --git a/docs/integrations/buildkite.md b/docs/integrations/buildkite.md index 4e204a4..c732ff5 100644 --- a/docs/integrations/buildkite.md +++ b/docs/integrations/buildkite.md @@ -18,9 +18,9 @@ steps: - command: uname -a plugins: - cirruslabs/tart#main: - image: ghcr.io/cirruslabs/macos-sonoma-base:latest + image: ghcr.io/cirruslabs/macos-sequoia-base:latest ``` -This will run `uname -r` in a macOS Tart VM cloned from `ghcr.io/cirruslabs/macos-sonoma-base:latest`. +This will run `uname -r` in a macOS Tart VM cloned from `ghcr.io/cirruslabs/macos-sequoia-base:latest`. See plugin's [Configuration section](https://github.com/cirruslabs/tart-buildkite-plugin#configuration) for the full list of available options. diff --git a/docs/integrations/cirrus-cli.md b/docs/integrations/cirrus-cli.md index a2983b0..fe3e3a5 100644 --- a/docs/integrations/cirrus-cli.md +++ b/docs/integrations/cirrus-cli.md @@ -18,7 +18,7 @@ task: name: hello macos_instance: # can be a remote or a local virtual machine - image: ghcr.io/cirruslabs/macos-sonoma-base:latest + image: ghcr.io/cirruslabs/macos-sequoia-base:latest hello_script: - echo "Hello from within a Tart VM!" - echo "Here is my CPU info:" @@ -50,7 +50,7 @@ exposes it via [`artifacts` instruction](https://cirrus-ci.org/guide/writing-tas task: name: Build macos_instance: - image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest + image: ghcr.io/cirruslabs/macos-sequoia-xcode:latest build_script: swift build --product tart binary_artifacts: path: .build/debug/tart diff --git a/docs/integrations/gitlab-runner.md b/docs/integrations/gitlab-runner.md index 8adc243..127cedd 100644 --- a/docs/integrations/gitlab-runner.md +++ b/docs/integrations/gitlab-runner.md @@ -42,7 +42,7 @@ Now you can use Tart Images in your `.gitlab-ci.yml`: ```yaml # You can use any remote Tart Image. # Tart Executor will pull it from the registry and use it for creating ephemeral VMs. -image: ghcr.io/cirruslabs/macos-sonoma-base:latest +image: ghcr.io/cirruslabs/macos-sequoia-base:latest test: tags: diff --git a/docs/integrations/vm-management.md b/docs/integrations/vm-management.md index 4d8202f..ab21065 100644 --- a/docs/integrations/vm-management.md +++ b/docs/integrations/vm-management.md @@ -16,8 +16,8 @@ Tart can create VMs from `*.ipsw` files. You can download a specific `*.ipsw` fi use `latest` instead of a path to `*.ipsw` to download the latest available version: ```bash -tart create --from-ipsw=latest sonoma-vanilla -tart run sonoma-vanilla +tart create --from-ipsw=latest sequoia-vanilla +tart run sequoia-vanilla ``` After the initial booting of the VM, you'll need to manually go through the macOS installation process. As a convention we recommend creating an `admin` user with an `admin` password. After the regular installation please do some additional modifications in the VM: @@ -72,8 +72,8 @@ packer { } source "tart-cli" "tart" { - vm_base_name = "ghcr.io/cirruslabs/macos-sonoma-base:latest" - vm_name = "my-custom-sonoma" + vm_base_name = "ghcr.io/cirruslabs/macos-sequoia-base:latest" + vm_name = "my-custom-sequoia" cpu_count = 4 memory_gb = 8 disk_size_gb = 70 diff --git a/docs/orchard/integration-guide.md b/docs/orchard/integration-guide.md index ec5157a..09701a4 100644 --- a/docs/orchard/integration-guide.md +++ b/docs/orchard/integration-guide.md @@ -85,7 +85,7 @@ def main(): # Create VM response = requests.post("http://127.0.0.1:6120/v1/vms", auth=basic_auth, json={ "name": vm_name, - "image": "ghcr.io/cirruslabs/macos-sonoma-base:latest", + "image": "ghcr.io/cirruslabs/macos-sequoia-base:latest", "cpu": 4, "memory": 4096, "startup_script": { @@ -144,7 +144,7 @@ func main() { Meta: v1.Meta{ Name: vmName, }, - Image: "ghcr.io/cirruslabs/macos-sonoma-base:latest", + Image: "ghcr.io/cirruslabs/macos-sequoia-base:latest", CPU: 4, Memory: 4096, StartupScript: &v1.VMScript{ diff --git a/docs/orchard/quick-start.md b/docs/orchard/quick-start.md index e3a8e23..f9245d2 100644 --- a/docs/orchard/quick-start.md +++ b/docs/orchard/quick-start.md @@ -26,7 +26,7 @@ more information. Now, let's create a Virtual Machine: ```shell -orchard create vm --image ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base +orchard create vm --image ghcr.io/cirruslabs/macos-sequoia-base:latest sequoia-base ``` You can check a list of VM resources to see if the Virtual Machine we've created above is already running: @@ -48,7 +48,7 @@ instance. Orchard Controller instance is secured by default and all API calls ar To SSH into a VM, use the `orchard ssh` command: ```shell -orchard ssh vm sonoma-base +orchard ssh vm sequoia-base ``` You can specify the `--username` and `--password` flags to specify the username/password pair to use for the SSH @@ -58,14 +58,14 @@ You can also execute remote commands instead of spawning a login shell, similarl a command argument: ```shell -orchard ssh vm sonoma-base "uname -a" +orchard ssh vm sequoia-base "uname -a" ``` You can execute scripts remotely this way, by telling the remote command-line interpreter to read from the standard input and using the redirection operator as follows: ```shell -orchard ssh vm sonoma-base "bash -s" < script.sh +orchard ssh vm sequoia-base "bash -s" < script.sh ``` ### VNC @@ -73,7 +73,7 @@ orchard ssh vm sonoma-base "bash -s" < script.sh Similarly to `ssh` command, you can use `vnc` command to open Screen Sharing into a remote VM: ```shell -orchard vnc vm sonoma-base +orchard vnc vm sequoia-base ``` You can specify the `--username` and `--password` flags to specify the username/password pair to use for the VNC @@ -84,7 +84,7 @@ protocol. By default, `admin`/`admin` is used. The following command will delete the VM we've created above and clean-up the resources associated with it: ```shell -orchard delete vm sonoma-base +orchard delete vm sequoia-base ``` ## Environment variables diff --git a/docs/quick-start.md b/docs/quick-start.md index de0f557..0a82211 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -9,8 +9,8 @@ Try running a Tart VM on your Apple Silicon device running macOS 13.0 (Ventura) ```bash brew install cirruslabs/cli/tart -tart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base -tart run sonoma-base +tart clone ghcr.io/cirruslabs/macos-sequoia-base:latest sequoia-base +tart run sequoia-base ``` ??? info "Manual installation from a release archive" @@ -19,8 +19,8 @@ tart run sonoma-base ```bash curl -LO https://github.com/cirruslabs/tart/releases/latest/download/tart.tar.gz tar -xzvf tart.tar.gz - ./tart.app/Contents/MacOS/tart clone ghcr.io/cirruslabs/macos-sonoma-base:latest sonoma-base - ./tart.app/Contents/MacOS/tart run sonoma-base + ./tart.app/Contents/MacOS/tart clone ghcr.io/cirruslabs/macos-sequoia-base:latest sequoia-base + ./tart.app/Contents/MacOS/tart run sequoia-base ``` Please note that `./tart.app/Contents/MacOS/tart` binary is required to be used in order to trick macOS @@ -34,6 +34,10 @@ tart run sonoma-base The following macOS images are currently available: +* macOS 15 (Sequoia) + * `ghcr.io/cirruslabs/macos-sequoia-vanilla:latest` + * `ghcr.io/cirruslabs/macos-sequoia-base:latest` + * `ghcr.io/cirruslabs/macos-sequoia-xcode:latest` * macOS 14 (Sonoma) * `ghcr.io/cirruslabs/macos-sonoma-vanilla:latest` * `ghcr.io/cirruslabs/macos-sonoma-base:latest` @@ -82,7 +86,7 @@ These credentials work both for logging in via GUI, console (Linux) and SSH. If the guest VM is running and configured to accept incoming SSH connections you can conveniently connect to it like so: ```bash -ssh admin@$(tart ip sonoma-base) +ssh admin@$(tart ip sequoia-base) ``` !!! tip "Running scripts inside Tart virtual machines" @@ -91,8 +95,8 @@ ssh admin@$(tart ip sonoma-base) ```bash brew install cirruslabs/cli/sshpass - sshpass -p admin ssh -o "StrictHostKeyChecking no" admin@$(tart ip sonoma-base) "uname -a" - sshpass -p admin ssh -o "StrictHostKeyChecking no" admin@$(tart ip sonoma-base) < script.sh + sshpass -p admin ssh -o "StrictHostKeyChecking no" admin@$(tart ip sequoia-base) "uname -a" + sshpass -p admin ssh -o "StrictHostKeyChecking no" admin@$(tart ip sequoia-base) < script.sh ``` ## Mounting directories diff --git a/scripts/run-signed.sh b/scripts/run-signed.sh index 63a0c22..2ad0db7 100755 --- a/scripts/run-signed.sh +++ b/scripts/run-signed.sh @@ -1,7 +1,7 @@ #!/bin/sh # helper script to build and run a signed tart binary -# usage: ./scripts/run-signed.sh run sonoma-base +# usage: ./scripts/run-signed.sh run sequoia-base set -e