mirror of
https://github.com/cirruslabs/macos-image-templates.git
synced 2026-09-30 03:42:04 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7360b62106 | ||
|
|
e46673151d | ||
|
|
5e65e3e712 | ||
|
|
5cf26631b9 | ||
|
|
0d8fe3156a | ||
|
|
69866eb29b | ||
|
|
f2e700cda3 | ||
|
|
494e62f0b8 | ||
|
|
27def7c5ce | ||
|
|
f9c2b3c122 | ||
|
|
7132d10945 | ||
|
|
33e373e65b | ||
|
|
cfa9e2361c | ||
|
|
09fce08792 | ||
|
|
01365193b9 | ||
|
|
1414d3bf4b | ||
|
|
fbaec2adaa | ||
|
|
f47f8bf08c | ||
|
|
d56bd82e5d | ||
|
|
4b95c2c93f | ||
|
|
75924563a8 | ||
|
|
f3319b8eb8 | ||
|
|
5ee829f2c8 | ||
|
|
64d9651dca | ||
|
|
0682bdb108 | ||
|
|
3abe5ef330 | ||
|
|
36c1f1d9b7 | ||
|
|
413eb891fe | ||
|
|
be895f2507 | ||
|
|
9115ef2553 | ||
|
|
11b22ea0d0 | ||
|
|
062ecd3e0e |
+5
-3
@@ -14,11 +14,13 @@ task:
|
||||
<<: *defaults
|
||||
pull_vanilla_script:
|
||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-vanilla:latest
|
||||
- tart clone ghcr.io/cirruslabs/macos-$MACOS_VERSION-vanilla:latest "$MACOS_VERSION-base"
|
||||
disable_sip_script:
|
||||
- packer init "templates/${DISABLE_SIP_TEMPLATE}"
|
||||
- packer build -var vm_name="$MACOS_VERSION-base" "templates/${DISABLE_SIP_TEMPLATE}"
|
||||
build_base_script:
|
||||
- packer init templates/base.pkr.hcl
|
||||
- packer build -var macos_version="$MACOS_VERSION" templates/base.pkr.hcl
|
||||
disable_sip_script:
|
||||
- packer build -var vm_name=$MACOS_VERSION-base "templates/${DISABLE_SIP_TEMPLATE}"
|
||||
- packer build -var vm_name="$MACOS_VERSION-base" templates/base.pkr.hcl
|
||||
push_base_script:
|
||||
- tart push $MACOS_VERSION-base ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||
always:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
task:
|
||||
name: "Release Xcode $CIRRUS_TAG ($MACOS_VERSION)"
|
||||
env:
|
||||
XCODE_COMPONENTS: "MetalToolchain"
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
matrix:
|
||||
- MACOS_VERSION: tahoe
|
||||
- MACOS_VERSION: sequoia
|
||||
@@ -10,7 +10,7 @@ task:
|
||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||
build_script:
|
||||
- packer init templates/xcode.pkr.hcl
|
||||
- packer build -var macos_version="$MACOS_VERSION" -var xcode_version="[\"$CIRRUS_TAG\"]" -var xcode_components="[\"$XCODE_COMPONENTS\"]" templates/xcode.pkr.hcl
|
||||
- packer build -var macos_version="$MACOS_VERSION" -var xcode_version="[\"$CIRRUS_TAG\"]" -var xcode_components="[$XCODE_COMPONENTS]" templates/xcode.pkr.hcl
|
||||
push_script: |
|
||||
if [[ $CIRRUS_TAG == *"beta"* ]]
|
||||
then
|
||||
|
||||
+11
-6
@@ -2,20 +2,17 @@ task:
|
||||
name: "Update Runner Image ($MACOS_VERSION)"
|
||||
env:
|
||||
matrix:
|
||||
- MACOS_VERSION: sonoma
|
||||
XCODE_VERSIONS: "16.1,16"
|
||||
DISK_SIZE: 230
|
||||
- MACOS_VERSION: sequoia
|
||||
XCODE_VERSIONS: "\"26.0.1\",16.4,16.3,16.2,16.1,16"
|
||||
ADDITIONAL_IOS_BUILDS: "18.5,18.4,18.2,17.5"
|
||||
ADDITIONAL_TVOS_BUILDS: "17.5"
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
DISK_SIZE: 400
|
||||
DISK_SIZE: 380
|
||||
- MACOS_VERSION: tahoe
|
||||
XCODE_VERSIONS: "\"26.1.1\",\"26.0.1\",\"26.2-beta\""
|
||||
XCODE_VERSIONS: "\"26.4\",\"26.5-beta\",\"26.3\",\"26.2\",\"26.1.1\",\"26.0.1\""
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
ADDITIONAL_IOS_BUILDS: "18.6"
|
||||
DISK_SIZE: 290
|
||||
DISK_SIZE: 330
|
||||
<<: *defaults
|
||||
pull_base_script:
|
||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||
@@ -30,6 +27,14 @@ task:
|
||||
-var xcode_components="[$XCODE_COMPONENTS]" \
|
||||
-var expected_runtimes_file="data/expected.$MACOS_VERSION.runtimes.txt" \
|
||||
templates/xcode.pkr.hcl
|
||||
finalize_script: |
|
||||
if [[ -f "scripts/finalize-$MACOS_VERSION.sh" ]]; then
|
||||
packer build -var vm_name="$MACOS_VERSION-xcode:runner" \
|
||||
-var script_path="scripts/finalize-$MACOS_VERSION.sh" \
|
||||
templates/exex-script.pkr.hcl
|
||||
else
|
||||
echo "Skipping prepare script for $MACOS_VERSION"
|
||||
fi
|
||||
push_script: |
|
||||
if [[ -z "$CIRRUS_PR" ]]; then
|
||||
tart push "$MACOS_VERSION-xcode:runner" ghcr.io/cirruslabs/macos-runner:$MACOS_VERSION
|
||||
|
||||
@@ -4,12 +4,15 @@ task:
|
||||
env:
|
||||
matrix:
|
||||
- MACOS_VERSION: tahoe
|
||||
XCODE_VERSION: "26.1.1"
|
||||
XCODE_COMPONENTS: "MetalToolchain"
|
||||
XCODE_VERSION: "26.2"
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
LATEST: true
|
||||
- MACOS_VERSION: tahoe
|
||||
XCODE_VERSION: "26.1.1"
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
- MACOS_VERSION: tahoe
|
||||
XCODE_VERSION: "26.0.1"
|
||||
XCODE_COMPONENTS: "MetalToolchain"
|
||||
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||
- MACOS_VERSION: sequoia
|
||||
XCODE_VERSION: 16.4
|
||||
LATEST: true
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ packer build -var vm_name=sonoma-vanilla templates/disable-sip.pkr.hcl
|
||||
## Building Base Image
|
||||
|
||||
```bash
|
||||
packer build -var macos_version=sonoma templates/base.pkr.hcl
|
||||
packer build -var vm_name=sonoma-vanilla templates/base.pkr.hcl
|
||||
```
|
||||
|
||||
## Building Xcode Image
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
iOS 18.6 (18.6 - 22G86) - com.apple.CoreSimulator.SimRuntime.iOS-18-6
|
||||
iOS 26.0 (26.0.1 - 23A8464) - com.apple.CoreSimulator.SimRuntime.iOS-26-0
|
||||
iOS 26.1 (26.1 - 23B86) - com.apple.CoreSimulator.SimRuntime.iOS-26-1
|
||||
iOS 26.2 (26.2 - 23C5027f) - com.apple.CoreSimulator.SimRuntime.iOS-26-2
|
||||
tvOS 26.0 (26.0 - 23J352) - com.apple.CoreSimulator.SimRuntime.tvOS-26-0
|
||||
tvOS 26.1 (26.1 - 23J579) - com.apple.CoreSimulator.SimRuntime.tvOS-26-1
|
||||
tvOS 26.2 (26.2 - 23K5029e) - com.apple.CoreSimulator.SimRuntime.tvOS-26-2
|
||||
watchOS 26.0 (26.0 - 23R353) - com.apple.CoreSimulator.SimRuntime.watchOS-26-0
|
||||
watchOS 26.1 (26.1 - 23S36) - com.apple.CoreSimulator.SimRuntime.watchOS-26-1
|
||||
watchOS 26.2 (26.2 - 23S5280e) - com.apple.CoreSimulator.SimRuntime.watchOS-26-2
|
||||
visionOS 26.0 (26.0 - 23M336) - com.apple.CoreSimulator.SimRuntime.xrOS-26-0
|
||||
visionOS 26.1 (26.1 - 23N47) - com.apple.CoreSimulator.SimRuntime.xrOS-26-1
|
||||
visionOS 26.2 (26.2 - 23N5279e) - com.apple.CoreSimulator.SimRuntime.xrOS-26-2
|
||||
iOS 26.3 (26.3.1 - 23D8133) - com.apple.CoreSimulator.SimRuntime.iOS-26-3
|
||||
iOS 26.4 (26.4 - 23E244) - com.apple.CoreSimulator.SimRuntime.iOS-26-4
|
||||
iOS 26.5 (26.5 - 23F5043g) - com.apple.CoreSimulator.SimRuntime.iOS-26-5
|
||||
tvOS 26.2 (26.2 - 23K51) - com.apple.CoreSimulator.SimRuntime.tvOS-26-2
|
||||
tvOS 26.4 (26.4 - 23L243) - com.apple.CoreSimulator.SimRuntime.tvOS-26-4
|
||||
tvOS 26.5 (26.5 - 23L5443g) - com.apple.CoreSimulator.SimRuntime.tvOS-26-5
|
||||
watchOS 26.2 (26.2 - 23S303) - com.apple.CoreSimulator.SimRuntime.watchOS-26-2
|
||||
watchOS 26.4 (26.4 - 23T239) - com.apple.CoreSimulator.SimRuntime.watchOS-26-4
|
||||
watchOS 26.5 (26.5 - 23T5541h) - com.apple.CoreSimulator.SimRuntime.watchOS-26-5
|
||||
visionOS 26.2 (26.2 - 23N301) - com.apple.CoreSimulator.SimRuntime.xrOS-26-2
|
||||
visionOS 26.4 (26.4 - 23O243) - com.apple.CoreSimulator.SimRuntime.xrOS-26-4
|
||||
visionOS 26.5 (26.5 - 23O5441g) - com.apple.CoreSimulator.SimRuntime.xrOS-26-5
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
source ~/.zprofile
|
||||
|
||||
# Set shell options to enable fail-fast behavior
|
||||
#
|
||||
# * -e: fail the script when an error occurs or command fails
|
||||
# * -u: fail the script when attempting to reference unset parameters
|
||||
# * -o pipefail: by default an exit status of a pipeline is that of its
|
||||
# last command, this fails the pipe early if an error in
|
||||
# any of its commands occurs
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Wait until `xcrun simctl list devices -v` no longer reports any devices as "unavailable".
|
||||
#
|
||||
# Exit codes:
|
||||
# 0 - Success: no devices are marked as unavailable within the timeout window
|
||||
# 1 - Failure: timed out waiting for devices to become available
|
||||
# 2 - Failure: prerequisites missing (e.g., xcrun not found)
|
||||
|
||||
DEFAULT_TIMEOUT_MINUTES=60
|
||||
TIMEOUT_MINUTES=${1:-$DEFAULT_TIMEOUT_MINUTES}
|
||||
|
||||
if ! [[ "$TIMEOUT_MINUTES" =~ ^[0-9]+$ ]]; then
|
||||
echo "[wait-simulators] ERROR: TIMEOUT_MINUTES must be an integer number of minutes (got: '$TIMEOUT_MINUTES')." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
SECONDS_TOTAL=$(( TIMEOUT_MINUTES * 60 ))
|
||||
DEADLINE=$(( $(date +%s) + SECONDS_TOTAL ))
|
||||
SLEEP_SECONDS=15
|
||||
|
||||
# Print a one-line status snapshot of current unavailable devices (if any)
|
||||
print_status() {
|
||||
if xcrun simctl list devices -v | grep -qi "unavailable"; then
|
||||
echo "[wait-simulators] Still seeing 'unavailable' devices at $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
# Show a concise list of unavailable lines for debugging
|
||||
xcrun simctl list devices -v | grep -i "unavailable" | sed 's/^/[wait-simulators] /'
|
||||
else
|
||||
echo "[wait-simulators] No 'unavailable' devices detected at $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
fi
|
||||
}
|
||||
|
||||
trap 'echo "[wait-simulators] Interrupted" >&2; exit 130' INT TERM
|
||||
|
||||
echo "[wait-simulators] Waiting up to ${TIMEOUT_MINUTES} minute(s) for simulators to become available..."
|
||||
|
||||
while true; do
|
||||
if ! xcrun simctl list devices -v | grep -qi "unavailable"; then
|
||||
echo "[wait-simulators] All simulators are available."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
NOW=$(date +%s)
|
||||
if (( NOW >= DEADLINE )); then
|
||||
echo "[wait-simulators] TIMEOUT after ${TIMEOUT_MINUTES} minute(s). Some simulators remain 'unavailable'." >&2
|
||||
echo "[wait-simulators] Final snapshot of unavailable devices:" >&2
|
||||
xcrun simctl list devices -v | grep -i "unavailable" | sed 's/^/[wait-simulators] /' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_status
|
||||
REMAIN=$(( DEADLINE - NOW ))
|
||||
# Sleep in chunks to allow quicker exit when they become available
|
||||
SLEEP=$SLEEP_SECONDS
|
||||
if (( REMAIN < SLEEP_SECONDS )); then SLEEP=$REMAIN; fi
|
||||
sleep "$SLEEP"
|
||||
# Loop and re-check
|
||||
done
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
source ~/.zprofile
|
||||
|
||||
# Set shell options to enable fail-fast behavior
|
||||
#
|
||||
# * -e: fail the script when an error occurs or command fails
|
||||
# * -u: fail the script when attempting to reference unset parameters
|
||||
# * -o pipefail: by default an exit status of a pipeline is that of its
|
||||
# last command, this fails the pipe early if an error in
|
||||
# any of its commands occurs
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
update_tcc_database() {
|
||||
sudo sqlite3 "$1" <<-'EOF'
|
||||
INSERT OR REPLACE
|
||||
INTO access (
|
||||
service,
|
||||
client_type,
|
||||
client,
|
||||
auth_value,
|
||||
auth_reason,
|
||||
auth_version,
|
||||
indirect_object_identifier_type,
|
||||
indirect_object_identifier
|
||||
) VALUES
|
||||
-- Indirect osascript invocation via SSH
|
||||
('kTCCServiceAccessibility', 1, '/usr/libexec/sshd-keygen-wrapper', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServiceScreenCapture', 1, '/usr/libexec/sshd-keygen-wrapper', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServicePostEvent', 1, '/usr/libexec/sshd-keygen-wrapper', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServiceAppleEvents', 1, '/usr/libexec/sshd-keygen-wrapper', 2, 0, 1, 0, 'com.apple.systemevents'),
|
||||
('kTCCServiceAppleEvents', 1, '/usr/libexec/sshd-keygen-wrapper', 2, 0, 1, 0, 'com.apple.Safari'),
|
||||
-- Direct osascript invocation
|
||||
('kTCCServiceAccessibility', 1, '/usr/bin/osascript', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServiceScreenCapture', 1, '/usr/bin/osascript', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServicePostEvent', 1, '/usr/bin/osascript', 2, 0, 1, NULL, 'UNUSED'),
|
||||
('kTCCServiceAppleEvents', 1, '/usr/bin/osascript', 2, 0, 1, 0, 'com.apple.systemevents'),
|
||||
('kTCCServiceAppleEvents', 1, '/usr/bin/osascript', 2, 0, 1, 0, 'com.apple.Safari');
|
||||
EOF
|
||||
}
|
||||
|
||||
# Update TCC.db for all users
|
||||
update_tcc_database "/Library/Application Support/com.apple.TCC/TCC.db"
|
||||
|
||||
# Update TCC.db for the current user
|
||||
update_tcc_database "${HOME}/Library/Application Support/com.apple.TCC/TCC.db"
|
||||
+10
-5
@@ -7,13 +7,12 @@ packer {
|
||||
}
|
||||
}
|
||||
|
||||
variable "macos_version" {
|
||||
variable "vm_name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
vm_base_name = "ghcr.io/cirruslabs/macos-${var.macos_version}-vanilla:latest"
|
||||
vm_name = "${var.macos_version}-base"
|
||||
vm_name = "${var.vm_name}"
|
||||
cpu_count = 4
|
||||
memory_gb = 8
|
||||
disk_size_gb = 50
|
||||
@@ -65,6 +64,7 @@ build {
|
||||
"brew --version",
|
||||
"brew update",
|
||||
"brew install wget unzip zip ca-certificates cmake gcc git-lfs jq yq gh gitlab-runner",
|
||||
"brew install buildkite/buildkite/buildkite-agent",
|
||||
"brew install equinix-labs/otel-cli/otel-cli",
|
||||
"brew install curl || true", // doesn't work on Monterey
|
||||
"brew install --cask git-credential-manager",
|
||||
@@ -117,8 +117,8 @@ build {
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"source ~/.zprofile",
|
||||
"brew install node@20",
|
||||
"echo 'export PATH=\"/opt/homebrew/opt/node@20/bin:$PATH\"' >> ~/.zprofile",
|
||||
"brew install node@24",
|
||||
"echo 'export PATH=\"/opt/homebrew/opt/node@24/bin:$PATH\"' >> ~/.zprofile",
|
||||
"source ~/.zprofile",
|
||||
"node --version",
|
||||
"npm install --global yarn",
|
||||
@@ -177,4 +177,9 @@ build {
|
||||
"sudo chmod 0644 /Library/LaunchAgents/org.cirruslabs.tart-guest-agent.plist",
|
||||
]
|
||||
}
|
||||
|
||||
# Update TCC.db and allow automation tools
|
||||
provisioner "shell" {
|
||||
script = "scripts/update-tcc-database.sh"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
packer {
|
||||
required_plugins {
|
||||
tart = {
|
||||
version = ">= 1.12.0"
|
||||
source = "github.com/cirruslabs/tart"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "vm_name" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "script_path" {
|
||||
type = string
|
||||
description = "Path to a local script that should be uploaded and executed inside the VM."
|
||||
}
|
||||
|
||||
variable "pause_before" {
|
||||
type = string
|
||||
default = "60s"
|
||||
description = "How long Packer should wait before running the uploaded script."
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
vm_name = "${var.vm_name}"
|
||||
ssh_password = "admin"
|
||||
ssh_username = "admin"
|
||||
ssh_timeout = "120s"
|
||||
}
|
||||
|
||||
build {
|
||||
sources = ["source.tart-cli.tart"]
|
||||
|
||||
provisioner "shell" {
|
||||
script = var.script_path
|
||||
pause_before = var.pause_before
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
// will be update to 15.7
|
||||
// will be update to 15.7.2
|
||||
from_ipsw = "https://updates.cdn-apple.com/2025SummerFCS/fullrestores/093-10809/CFD6DD38-DAF0-40DA-854F-31AAD1294C6F/UniversalMac_15.6.1_24G90_Restore.ipsw"
|
||||
vm_name = "sequoia-vanilla"
|
||||
cpu_count = 4
|
||||
|
||||
@@ -12,7 +12,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
// will be update to 14.8
|
||||
// will be update to 14.8.2
|
||||
from_ipsw = "https://updates.cdn-apple.com/2024SummerFCS/fullrestores/062-52859/932E0A8F-6644-4759-82DA-F8FA8DEA806A/UniversalMac_14.6.1_23G93_Restore.ipsw"
|
||||
vm_name = "sonoma-vanilla"
|
||||
cpu_count = 4
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
packer {
|
||||
required_plugins {
|
||||
tart = {
|
||||
version = ">= 1.12.0"
|
||||
version = ">= 1.16.0"
|
||||
source = "github.com/cirruslabs/tart"
|
||||
}
|
||||
ansible = {
|
||||
@@ -12,7 +12,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
from_ipsw = "https://updates.cdn-apple.com/2025FallFCS/fullrestores/089-04148/791B6F00-A30B-4EB0-B2E3-257167F7715B/UniversalMac_26.1_25B78_Restore.ipsw"
|
||||
from_ipsw = "https://updates.cdn-apple.com/2026WinterFCS/fullrestores/122-00766/062A6121-2ABE-45D7-BCB1-72B666B6D2C2/UniversalMac_26.4_25E246_Restore.ipsw"
|
||||
vm_name = "tahoe-vanilla"
|
||||
cpu_count = 4
|
||||
memory_gb = 8
|
||||
@@ -32,7 +32,7 @@ source "tart-cli" "tart" {
|
||||
# [1]: should be named "English (US)", but oh well 🤷
|
||||
"<wait30s>italiano<esc>english<enter>",
|
||||
# Select Your Country or Region
|
||||
"<wait60s>united states<leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
"<wait30s><click 'Select Your Country or Region'><wait5s>united states<leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# Transfer Your Data to This Mac
|
||||
"<wait10s><tab><tab><tab><spacebar><tab><tab><spacebar>",
|
||||
# Written and Spoken Languages
|
||||
@@ -65,6 +65,10 @@ source "tart-cli" "tart" {
|
||||
"<wait10s><tab><tab><spacebar>",
|
||||
# Siri
|
||||
"<wait10s><tab><spacebar><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# You Mac is Ready for FileVault
|
||||
"<wait10s><leftShiftOn><tab><tab><leftShiftOff><spacebar>",
|
||||
# Mac Data Will Not Be Securely Encrypted
|
||||
"<wait10s><tab><spacebar>",
|
||||
# Choose Your Look
|
||||
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# Update Mac Automatically
|
||||
@@ -95,7 +99,7 @@ source "tart-cli" "tart" {
|
||||
# On Tahoe opening System Settings through Spotlight is not very reliable, sometimes opens System information
|
||||
"<wait10s>open '/System/Applications/System Settings.app'<enter>",
|
||||
"<wait10s><leftCtrlOn><f2><leftCtrlOff><right><right><right><down>Privacy & Security<enter>",
|
||||
"<wait10s><leftShiftOn><tab><tab><tab><tab><tab><leftShiftOff>",
|
||||
"<wait10s><leftShiftOn><tab><tab><tab><tab><tab><tab><leftShiftOff>",
|
||||
"<wait10s><down><wait1s><down><wait1s><enter>",
|
||||
"<wait10s>admin<enter>",
|
||||
"<wait10s><leftShiftOn><tab><leftShiftOff><wait1s><spacebar>",
|
||||
|
||||
+10
-22
@@ -44,7 +44,7 @@ variable "tag" {
|
||||
|
||||
variable "disk_size" {
|
||||
type = number
|
||||
default = 120
|
||||
default = 140
|
||||
}
|
||||
|
||||
variable "disk_free_mb" {
|
||||
@@ -54,7 +54,7 @@ variable "disk_free_mb" {
|
||||
|
||||
variable "android_sdk_tools_version" {
|
||||
type = string
|
||||
default = "11076708" # https://developer.android.com/studio#command-line-tools-only
|
||||
default = "14742923" # https://developer.android.com/studio#command-line-tools-only
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
@@ -100,6 +100,9 @@ build {
|
||||
"brew --version",
|
||||
"brew update",
|
||||
"brew upgrade",
|
||||
"brew install codex",
|
||||
"brew install --cask claude-code",
|
||||
"brew install --cask amazon-q"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -130,7 +133,7 @@ build {
|
||||
"rm android-sdk-tools.zip",
|
||||
"mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest",
|
||||
"yes | sdkmanager --licenses",
|
||||
"yes | sdkmanager 'platform-tools' 'platforms;android-35' 'build-tools;35.0.0' 'ndk;27.2.12479018'"
|
||||
"yes | sdkmanager 'platform-tools' 'platforms;android-36' 'build-tools;36.0.0' 'ndk;28.2.13676358'"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -228,7 +231,10 @@ build {
|
||||
"source ~/.zprofile",
|
||||
"brew install libimobiledevice ideviceinstaller ios-deploy carthage",
|
||||
"brew install xcbeautify swiftformat swiftlint swiftgen licenseplist",
|
||||
"brew install mint tuist/tuist/tuist",
|
||||
"brew install mint",
|
||||
"brew tap tuist/tuist",
|
||||
"brew install --formula tuist",
|
||||
"rbenv install 3.3.10",
|
||||
"rbenv global 3.3.10", # fastlane conflicts with 3.4.0+ https://github.com/fastlane/fastlane/issues/29527
|
||||
"gem update",
|
||||
"gem install fastlane",
|
||||
@@ -341,30 +347,12 @@ build {
|
||||
#
|
||||
# [1]: https://apple.stackexchange.com/questions/412101/update-dyld-sim-shared-cache-is-taking-up-a-lot-of-memory
|
||||
# [2]: https://stackoverflow.com/a/68394101/9316533
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"source ~/.zprofile",
|
||||
"xcrun simctl runtime dyld_shared_cache update --all || sleep 180",
|
||||
"xcrun simctl list -v",
|
||||
]
|
||||
}
|
||||
|
||||
// Restart the VM
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"sudo shutdown -r now"
|
||||
]
|
||||
expect_disconnect = true
|
||||
}
|
||||
|
||||
// Wait for VM to come back up and run simctl commands again
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"source ~/.zprofile",
|
||||
"xcrun simctl runtime dyld_shared_cache update --all || sleep 180",
|
||||
"xcrun simctl list -v"
|
||||
]
|
||||
pause_before = "60s"
|
||||
}
|
||||
|
||||
# Compatibility with GitHub Actions Runner Images, where
|
||||
|
||||
Reference in New Issue
Block a user