mirror of
https://github.com/cirruslabs/macos-image-templates.git
synced 2026-09-30 11:51:13 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45c214692c | ||
|
|
b94738812f | ||
|
|
2d4e5b9968 | ||
|
|
24607711dc | ||
|
|
081c8ac4e3 | ||
|
|
d0f94cc4c8 | ||
|
|
fe19dc9f17 | ||
|
|
6f8ae07451 | ||
|
|
16a5100187 | ||
|
|
7058092d82 |
@@ -2,18 +2,26 @@ task:
|
||||
name: "Update Base Images ($MACOS_VERSION)"
|
||||
alias: update-base
|
||||
matrix:
|
||||
- env:
|
||||
MACOS_VERSION: ventura
|
||||
DISABLE_SIP_TEMPLATE: disable-sip.pkr.hcl
|
||||
- env:
|
||||
MACOS_VERSION: sonoma
|
||||
DISABLE_SIP_TEMPLATE: disable-sip.pkr.hcl
|
||||
- env:
|
||||
MACOS_VERSION: sequoia
|
||||
DISABLE_SIP_TEMPLATE: disable-sip-with-username.pkr.hcl
|
||||
- env:
|
||||
MACOS_VERSION: tahoe
|
||||
DISABLE_SIP_TEMPLATE: disable-sip-with-username.pkr.hcl
|
||||
<<: *defaults
|
||||
pull_vanilla_script:
|
||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-vanilla:latest
|
||||
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}"
|
||||
push_base_script:
|
||||
- tart push $MACOS_VERSION-base ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||
always:
|
||||
|
||||
@@ -3,12 +3,13 @@ task:
|
||||
matrix:
|
||||
- env:
|
||||
MACOS_VERSION: sequoia
|
||||
XCODE_COMPONENTS: "MetalToolchain"
|
||||
<<: *defaults
|
||||
pull_base_script:
|
||||
- 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\"]" 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
|
||||
|
||||
@@ -8,7 +8,7 @@ task:
|
||||
ADDITIONAL_IOS_BUILDS: "17.5"
|
||||
DISK_SIZE: 275
|
||||
- MACOS_VERSION: sequoia
|
||||
XCODE_VERSIONS: "16.4,\"26-beta-5\",16.3,16.2,16.1,16"
|
||||
XCODE_VERSIONS: "16.4,\"26-rc\",16.3,16.2,16.1,16"
|
||||
ADDITIONAL_IOS_BUILDS: "18.5,18.4,18.2,17.5"
|
||||
DISK_SIZE: 600
|
||||
<<: *defaults
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
env:
|
||||
RESOLVE_VM_NAME: "resolve-macos-number-task-id-${CIRRUS_TASK_ID}"
|
||||
RESOLVE_FILE: "${RESOLVE_VM_NAME}.txt"
|
||||
DISABLE_SIP_TEMPLATE: disable-sip.pkr.hcl
|
||||
|
||||
task:
|
||||
name: "Update Vanilla Image ($MACOS_VERSION)"
|
||||
env:
|
||||
matrix:
|
||||
- MACOS_VERSION: tahoe
|
||||
DISABLE_SIP_TEMPLATE: disable-sip-with-username.pkr.hcl
|
||||
- MACOS_VERSION: sequoia
|
||||
DISABLE_SIP_TEMPLATE: disable-sip-with-username.pkr.hcl
|
||||
- MACOS_VERSION: sonoma
|
||||
- MACOS_VERSION: ventura
|
||||
- MACOS_VERSION: monterey
|
||||
@@ -19,8 +16,6 @@ task:
|
||||
build_script:
|
||||
- packer init templates/vanilla-$MACOS_VERSION.pkr.hcl
|
||||
- packer build templates/vanilla-$MACOS_VERSION.pkr.hcl
|
||||
disable_sip_script:
|
||||
- packer build -var vm_name=$MACOS_VERSION-vanilla "templates/${DISABLE_SIP_TEMPLATE}"
|
||||
resolve_macos_number_script:
|
||||
- packer build -var vm_base_name=$MACOS_VERSION-vanilla -var vm_name=$RESOLVE_VM_NAME -var resolve_file=$RESOLVE_FILE templates/resolve-macos-number.pkr.hcl
|
||||
- echo "MACOS_NUMBER=$(cat $RESOLVE_FILE)" >> $CIRRUS_ENV
|
||||
|
||||
@@ -4,7 +4,8 @@ task:
|
||||
env:
|
||||
matrix:
|
||||
- MACOS_VERSION: tahoe
|
||||
XCODE_VERSION: 26-beta-5
|
||||
XCODE_VERSION: 26-rc
|
||||
XCODE_COMPONENTS: "MetalToolchain"
|
||||
LATEST: true
|
||||
- MACOS_VERSION: sequoia
|
||||
XCODE_VERSION: 16.4
|
||||
@@ -22,12 +23,17 @@ task:
|
||||
LATEST: true
|
||||
- MACOS_VERSION: sonoma
|
||||
XCODE_VERSION: 16
|
||||
- MACOS_VERSION: sonoma
|
||||
XCODE_VERSION: 15.4
|
||||
- MACOS_VERSION: ventura
|
||||
XCODE_VERSION: 15.4
|
||||
LATEST: true
|
||||
<<: *defaults
|
||||
pull_base_script:
|
||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||
build_xcode_script:
|
||||
- packer init templates/xcode.pkr.hcl
|
||||
- packer build -var macos_version="$MACOS_VERSION" -var xcode_version="[\"$XCODE_VERSION\"]" templates/xcode.pkr.hcl
|
||||
- packer build -var macos_version="$MACOS_VERSION" -var xcode_version="[\"$XCODE_VERSION\"]" -var xcode_components="[$XCODE_COMPONENTS]" templates/xcode.pkr.hcl
|
||||
push_script: |
|
||||
if [[ -z "$LATEST" ]]
|
||||
then
|
||||
|
||||
@@ -14,19 +14,11 @@ See a full list of VMs available [here](https://github.com/orgs/cirruslabs/packa
|
||||
## Release Cadence
|
||||
|
||||
Once a new version of Xcode is released, we will initiate a GitHub release which will automatically build and push
|
||||
a new version of the `macos-sequoia-xcode:N`. This generally happens within 24 hours of a release.
|
||||
a new version of the `macos-sequoia-xcode:N`. This generally happens the next weekend after a release.
|
||||
Please watch this repository releases to get notified about new images.
|
||||
|
||||
For an Xcode release which is non beta and not an RC `ghcr.io/cirruslabs/macos-runner:sequoia` image will also be updated.
|
||||
|
||||
## Update Cadence
|
||||
|
||||
Some of the images are regularly getting rebuild in order to update the pre-installed packages. The following images are updated
|
||||
monthly on the first Saturday of the month:
|
||||
Some of the images are regularly getting rebuild in order to update the pre-installed packages.
|
||||
|
||||
* `ghcr.io/cirruslabs/macos-{sequoia,sonoma}-base`
|
||||
* `ghcr.io/cirruslabs/macos-runner:sonoma` which is a superset of `ghcr.io/cirruslabs/macos-sonoma-xcode:{latest,16.1,16,15.4,15.3,15.2,15.1,15.0.1}`
|
||||
* `ghcr.io/cirruslabs/macos-runner:sequoia` which is a superset of `ghcr.io/cirruslabs/macos-sequoia-xcode:{latest,16.3,16.2,16.1,16,15.4}`
|
||||
|
||||
Note that `ghcr.io/cirruslabs/macos-runner:{sequoia,sonoma}` are updated every Sunday and these images are [optimised for startup](https://cirrus-runners.app/blog/2024/04/11/optimizing-startup-time-of-cirrus-runners/)
|
||||
on Cirrus Runners and Cirrus CI services.
|
||||
[This configuration file](.ci/cirrus.release.yml) defines images that are getting rebuilt monthly on the first Saturday of the month.
|
||||
|
||||
@@ -7,13 +7,13 @@ iOS 18.3 (18.3.1 - 22D8075) - com.apple.CoreSimulator.SimRuntime.iOS-18-3
|
||||
iOS 18.4 (18.4 - 22E238) - com.apple.CoreSimulator.SimRuntime.iOS-18-4
|
||||
iOS 18.5 (18.5 - 22F77) - com.apple.CoreSimulator.SimRuntime.iOS-18-5
|
||||
iOS 18.6 (18.6 - 22G86) - com.apple.CoreSimulator.SimRuntime.iOS-18-6
|
||||
iOS 26.0 (26.0 - 23A5308g) - com.apple.CoreSimulator.SimRuntime.iOS-26-0
|
||||
iOS 26.0 (26.0 - 23A339) - com.apple.CoreSimulator.SimRuntime.iOS-26-0
|
||||
tvOS 18.4 (18.4 - 22L254) - com.apple.CoreSimulator.SimRuntime.tvOS-18-4
|
||||
tvOS 18.5 (18.5 - 22L572) - com.apple.CoreSimulator.SimRuntime.tvOS-18-5
|
||||
tvOS 26.0 (26.0 - 23J5327g) - com.apple.CoreSimulator.SimRuntime.tvOS-26-0
|
||||
tvOS 26.0 (26.0 - 23J352) - com.apple.CoreSimulator.SimRuntime.tvOS-26-0
|
||||
watchOS 11.4 (11.4 - 22T250) - com.apple.CoreSimulator.SimRuntime.watchOS-11-4
|
||||
watchOS 11.5 (11.5 - 22T572) - com.apple.CoreSimulator.SimRuntime.watchOS-11-5
|
||||
watchOS 26.0 (26.0 - 23R5328g) - com.apple.CoreSimulator.SimRuntime.watchOS-26-0
|
||||
watchOS 26.0 (26.0 - 23R351) - com.apple.CoreSimulator.SimRuntime.watchOS-26-0
|
||||
visionOS 2.4 (2.4 - 22O237) - com.apple.CoreSimulator.SimRuntime.xrOS-2-4
|
||||
visionOS 2.5 (2.5 - 22O473) - com.apple.CoreSimulator.SimRuntime.xrOS-2-5
|
||||
visionOS 26.0 (26.0 - 23M5311g) - com.apple.CoreSimulator.SimRuntime.xrOS-26-0
|
||||
visionOS 26.0 (26.0 - 23M336) - com.apple.CoreSimulator.SimRuntime.xrOS-26-0
|
||||
|
||||
@@ -12,7 +12,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
from_ipsw = "https://updates.cdn-apple.com/2025SummerFCS/fullrestores/082-08674/51294E4D-A273-44BE-A280-A69FC347FB87/UniversalMac_15.6_24G84_Restore.ipsw"
|
||||
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
|
||||
memory_gb = 8
|
||||
|
||||
@@ -12,7 +12,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
from_ipsw = "https://updates.cdn-apple.com/2025SummerSeed/fullrestores/093-03417/C35F3BA3-6DCD-473C-9266-A3BF390520BE/UniversalMac_26.0_25A5327h_Restore.ipsw"
|
||||
from_ipsw = "https://updates.cdn-apple.com/2025SummerSeed/fullrestores/093-28610/036AE4A3-8A7D-44F1-A26F-ED754C346A74/UniversalMac_26.0_25A5351b_Restore.ipsw"
|
||||
vm_name = "tahoe-vanilla"
|
||||
cpu_count = 4
|
||||
memory_gb = 8
|
||||
@@ -58,13 +58,17 @@ source "tart-cli" "tart" {
|
||||
# Are you sure you don't want to use Location Services?
|
||||
"<wait10s><tab><spacebar>",
|
||||
# Select Your Time Zone
|
||||
"<wait10s><tab><tab>UTC<enter><leftShiftOn><tab><tab><leftShiftOff><spacebar>",
|
||||
"<wait10s><tab><tab><tab>UTC<enter><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# Analytics
|
||||
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# Screen Time
|
||||
"<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
|
||||
@@ -72,14 +76,14 @@ source "tart-cli" "tart" {
|
||||
# Welcome to Mac
|
||||
"<wait30s><spacebar>",
|
||||
# Disable Voice Over
|
||||
"<leftAltOn><f5><leftAltOff>",
|
||||
"<wait10s><leftAltOn><f5><leftAltOff>",
|
||||
# Enable Keyboard navigation
|
||||
# This is so that we can navigate the System Settings app using the keyboard
|
||||
"<wait10s><leftAltOn><spacebar><leftAltOff>Terminal<enter>",
|
||||
"<wait10s>defaults write NSGlobalDomain AppleKeyboardUIMode -int 3<enter>",
|
||||
"<wait10s><leftAltOn><spacebar><leftAltOff>Terminal<wait10s><enter>",
|
||||
"<wait10s><wait10s>defaults write NSGlobalDomain AppleKeyboardUIMode -int 3<enter>",
|
||||
"<wait10s><leftAltOn>q<leftAltOff>",
|
||||
# Now that the installation is done, open "System Settings"
|
||||
"<wait10s><leftAltOn><spacebar><leftAltOff>System Settings<enter>",
|
||||
"<wait10s><leftAltOn><spacebar><leftAltOff>System Settings<wait10s><enter>",
|
||||
# Navigate to "Sharing"
|
||||
"<wait10s><leftCtrlOn><f2><leftCtrlOff><right><right><right><down>Sharing<enter>",
|
||||
# Navigate to "Screen Sharing" and enable it
|
||||
|
||||
@@ -20,6 +20,12 @@ variable "additional_ios_builds" {
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "xcode_components" {
|
||||
type = list(string)
|
||||
default = []
|
||||
description = "Additional Xcode components to download."
|
||||
}
|
||||
|
||||
variable "expected_runtimes_file" {
|
||||
type = string
|
||||
default = ""
|
||||
@@ -194,6 +200,15 @@ build {
|
||||
)
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
inline = concat(
|
||||
["source ~/.zprofile"],
|
||||
[
|
||||
for component in var.xcode_components : "xcodebuild -downloadComponent ${component}"
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"source ~/.zprofile",
|
||||
|
||||
Reference in New Issue
Block a user