mirror of
https://github.com/cirruslabs/macos-image-templates.git
synced 2026-09-30 03:42:04 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a63fb03f2e | ||
|
|
8f93e8eae2 | ||
|
|
8b9f6ce141 | ||
|
|
a9d8536f46 | ||
|
|
73dea7bcb0 | ||
|
|
e5f5edca05 | ||
|
|
21522999bb | ||
|
|
664d47260e | ||
|
|
67a57c3064 | ||
|
|
fabd89cead | ||
|
|
b19d3fa66c | ||
|
|
3f1850ad07 | ||
|
|
4b7ac1f76f | ||
|
|
98b522dbfa | ||
|
|
41b20ab533 | ||
|
|
b28936faa2 | ||
|
|
3e3e6818f3 | ||
|
|
47695a9abd | ||
|
|
6555932569 | ||
|
|
4513f2adad | ||
|
|
0a4f436302 | ||
|
|
277b13fb59 |
+44
-13
@@ -1,12 +1,37 @@
|
||||
persistent_worker:
|
||||
labels:
|
||||
name: dev-mini
|
||||
|
||||
env:
|
||||
TART_REGISTRY_HOSTNAME: ghcr.io
|
||||
TART_REGISTRY_USERNAME: fkorotkov # GitHub supports only PATs
|
||||
TART_REGISTRY_PASSWORD: ENCRYPTED[!82ed873afdf627284305afef4958c85a8f73127b09978a9786ac521559630ea6c9a5ab6e7f8315abf9ead09b6eff6eae!]
|
||||
AWS_ACCESS_KEY_ID: ENCRYPTED[c187b670a17eead88c1698849376273991d09678efe37ae2f0c9738c27a2422741a71c501ef4b6a4df7bff3eca5213a9]
|
||||
AWS_SECRET_ACCESS_KEY: ENCRYPTED[e456254a53b82e3167f2da23e24c389620cb3f7d47e4e5e7d993813bf9bb18c784d5cb8d88d19632073acc9e1f6096c9]
|
||||
|
||||
task:
|
||||
name: "Update Images"
|
||||
name: "Update Vanilla Images"
|
||||
only_if: false
|
||||
timeout_in: 3h
|
||||
update_script: brew update && brew upgrade
|
||||
info_script:
|
||||
- tart --version
|
||||
- packer --version
|
||||
build_script:
|
||||
- packer init templates/vanilla-sonoma.pkr.hcl
|
||||
- packer build templates/vanilla-sonoma.pkr.hcl
|
||||
disable_sip_script:
|
||||
- packer build -var vm_name=sonoma-vanilla templates/disable-sip.pkr.hcl
|
||||
push_script:
|
||||
- tart push sonoma-vanilla ghcr.io/cirruslabs/macos-sonoma-vanilla:latest ghcr.io/cirruslabs/macos-sonoma-vanilla:14.1
|
||||
always:
|
||||
cleanup_script:
|
||||
- tart delete sonoma-vanilla || true
|
||||
|
||||
task:
|
||||
name: "Update Non-Vanilla Images"
|
||||
only_if: $CIRRUS_CRON != ""
|
||||
persistent_worker:
|
||||
labels:
|
||||
name: dev-mini
|
||||
env:
|
||||
TART_REGISTRY_USERNAME: fkorotkov # GitHub supports only PATs
|
||||
TART_REGISTRY_PASSWORD: ENCRYPTED[!82ed873afdf627284305afef4958c85a8f73127b09978a9786ac521559630ea6c9a5ab6e7f8315abf9ead09b6eff6eae!]
|
||||
timeout_in: 3h
|
||||
update_script: brew update && brew upgrade
|
||||
info_script:
|
||||
- tart --version
|
||||
@@ -23,6 +48,10 @@ task:
|
||||
- tart push sonoma-base ghcr.io/cirruslabs/macos-sonoma-base:latest
|
||||
push_xcode_script:
|
||||
- tart push sonoma-xcode:$XCODE_VERSION ghcr.io/cirruslabs/macos-sonoma-xcode:$XCODE_VERSION ghcr.io/cirruslabs/macos-sonoma-xcode:latest
|
||||
push_base_ecr_script:
|
||||
- tart push sonoma-base public.ecr.aws/cirruslabs/macos:sonoma-base
|
||||
push_xcode_ecr_script:
|
||||
- tart push sonoma-xcode:$XCODE_VERSION public.ecr.aws/cirruslabs/macos:sonoma-xcode-$XCODE_VERSION public.ecr.aws/cirruslabs/macos:sonoma-xcode
|
||||
always:
|
||||
cleanup_script:
|
||||
- tart delete sonoma-base || true
|
||||
@@ -31,12 +60,7 @@ task:
|
||||
task:
|
||||
name: "Release Xcode $CIRRUS_TAG"
|
||||
only_if: $CIRRUS_TAG != ""
|
||||
persistent_worker:
|
||||
labels:
|
||||
name: dev-mini
|
||||
env:
|
||||
TART_REGISTRY_USERNAME: fkorotkov # GitHub supports only PATs
|
||||
TART_REGISTRY_PASSWORD: ENCRYPTED[!82ed873afdf627284305afef4958c85a8f73127b09978a9786ac521559630ea6c9a5ab6e7f8315abf9ead09b6eff6eae!]
|
||||
timeout_in: 3h
|
||||
update_script: brew update && brew upgrade
|
||||
info_script:
|
||||
- tart --version
|
||||
@@ -54,6 +78,13 @@ task:
|
||||
else
|
||||
tart push sonoma-xcode:$CIRRUS_TAG ghcr.io/cirruslabs/macos-sonoma-xcode:$CIRRUS_TAG ghcr.io/cirruslabs/macos-sonoma-xcode:latest
|
||||
fi
|
||||
push_ecr_script: |
|
||||
if [[ $CIRRUS_TAG == *"beta"* ]]
|
||||
then
|
||||
tart push sonoma-xcode:$CIRRUS_TAG public.ecr.aws/cirruslabs/macos:sonoma-xcode-$CIRRUS_TAG
|
||||
else
|
||||
tart push sonoma-xcode:$CIRRUS_TAG public.ecr.aws/cirruslabs/macos:sonoma-xcode-$CIRRUS_TAG public.ecr.aws/cirruslabs/macos:sonoma-xcode
|
||||
fi
|
||||
always:
|
||||
cleanup_script:
|
||||
- tart delete sonoma-base || true
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
## macOS Packer Templates for Cirrus CI
|
||||
## macOS Packer Templates for Tart
|
||||
|
||||
Repository with Packer templates to build [Tart VMs](https://github.com/cirruslabs/tart) to use with [Cirrus CI](https://cirrus-ci.org/guide/macOS/).
|
||||
Repository with Packer templates to build [Tart VMs](https://github.com/cirruslabs/tart) to use with [Cirrus Runners](https://tart.run/integrations/github-actions/) and [Cirrus CI](https://cirrus-ci.org/guide/macOS/).
|
||||
|
||||
* `macos-{monterey,ventura,sonoma}-vanilla` image has nothing pre-installed
|
||||
* `macos-{monterey,ventura,sonoma}-base` image has only `brew` pre-installed
|
||||
* `macos-{monterey,ventura,sonoma}-xcode:N` image is based on `macos-{monterey,ventura}-base` image and has `Xcode N` with [`Flutter`](https://flutter.dev/) pre-installed
|
||||
|
||||
See a full list of VMs available on Cirrus CI [here](https://github.com/orgs/cirruslabs/packages?tab=packages&q=macos-).
|
||||
See a full list of VMs available [here](https://github.com/orgs/cirruslabs/packages?tab=packages&q=macos-).
|
||||
|
||||
## Building Vanilla Image
|
||||
|
||||
|
||||
@@ -22,11 +22,8 @@ source "tart-cli" "tart" {
|
||||
# Skip over "Macintosh" and select "Options"
|
||||
# to boot into macOS Recovery
|
||||
"<wait60s><right><right><enter>",
|
||||
# Select default language
|
||||
"<wait10s><enter>",
|
||||
# Open Terminal
|
||||
"<wait10s><leftCtrlOn><f2><leftCtrlOff>",
|
||||
"<right><right><right><right><down><down><down><enter>",
|
||||
"<wait10s><leftAltOn>T<leftAltOff>",
|
||||
# Disable SIP
|
||||
"<wait10s>csrutil disable<enter>",
|
||||
"<wait10s>y<enter>",
|
||||
|
||||
@@ -93,13 +93,15 @@ build {
|
||||
// Disable screensaver for admin user
|
||||
"defaults -currentHost write com.apple.screensaver idleTime 0",
|
||||
// Prevent the VM from sleeping
|
||||
"sudo systemsetup -setdisplaysleep Off",
|
||||
"sudo systemsetup -setsleep Off",
|
||||
"sudo systemsetup -setcomputersleep Off",
|
||||
"sudo systemsetup -setdisplaysleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setsleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setcomputersleep Off 2>/dev/null",
|
||||
// Launch Safari to populate the defaults
|
||||
"/Applications/Safari.app/Contents/MacOS/Safari &",
|
||||
"sleep 3",
|
||||
"kill -9 %1",
|
||||
"SAFARI_PID=$!",
|
||||
"disown",
|
||||
"sleep 30",
|
||||
"kill -9 $SAFARI_PID",
|
||||
// Enable Safari's remote automation and "Develop" menu
|
||||
"sudo safaridriver --enable",
|
||||
"defaults write com.apple.Safari.SandboxBroker ShowDevelopMenu -bool true",
|
||||
|
||||
@@ -8,7 +8,7 @@ packer {
|
||||
}
|
||||
|
||||
source "tart-cli" "tart" {
|
||||
from_ipsw = "https://updates.cdn-apple.com/2023FallFCS/fullrestores/002-81996/596571C1-9856-4BB3-B5BF-B5A48F4B406E/UniversalMac_14.0_23A339_Restore.ipsw"
|
||||
from_ipsw = "https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-86430/DBE44960-58A6-4715-948B-D64F33F769BD/UniversalMac_14.1_23B74_Restore.ipsw"
|
||||
vm_name = "sonoma-vanilla"
|
||||
cpu_count = 4
|
||||
memory_gb = 8
|
||||
@@ -19,8 +19,14 @@ source "tart-cli" "tart" {
|
||||
boot_command = [
|
||||
# hello, hola, bonjour, etc.
|
||||
"<wait60s><spacebar>",
|
||||
# Language
|
||||
"<wait30s>english<enter>",
|
||||
# Language: most of the times we have a list of "English"[1], "English (UK)", etc. with
|
||||
# "English" language already selected. If we type "english", it'll cause us to switch
|
||||
# to the "English (UK)", which is not what we want. To solve this, we switch to some other
|
||||
# language first, e.g. "Italiano" and then switch back to "English". We'll then jump to the
|
||||
# first entry in a list of "english"-prefixed items, which will be "English".
|
||||
#
|
||||
# [1]: should be named "English (US)", but oh well 🤷
|
||||
"<wait30s>italiano<esc>english<enter>",
|
||||
# Select Your Country and Region
|
||||
"<wait30s>united states<leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||
# Written and Spoken Languages
|
||||
@@ -97,13 +103,15 @@ build {
|
||||
// Disable screensaver for admin user
|
||||
"defaults -currentHost write com.apple.screensaver idleTime 0",
|
||||
// Prevent the VM from sleeping
|
||||
"sudo systemsetup -setdisplaysleep Off",
|
||||
"sudo systemsetup -setsleep Off",
|
||||
"sudo systemsetup -setcomputersleep Off",
|
||||
"sudo systemsetup -setdisplaysleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setsleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setcomputersleep Off 2>/dev/null",
|
||||
// Launch Safari to populate the defaults
|
||||
"/Applications/Safari.app/Contents/MacOS/Safari &",
|
||||
"SAFARI_PID=$!",
|
||||
"disown",
|
||||
"sleep 30",
|
||||
"kill -9 %1",
|
||||
"kill -9 $SAFARI_PID",
|
||||
// Enable Safari's remote automation and "Develop" menu
|
||||
"sudo safaridriver --enable",
|
||||
"defaults write com.apple.Safari.SandboxBroker ShowDevelopMenu -bool true",
|
||||
|
||||
@@ -10,7 +10,7 @@ packer {
|
||||
source "tart-cli" "tart" {
|
||||
# You can find macOS IPSW URLs on various websites like https://ipsw.me/
|
||||
# and https://www.theiphonewiki.com/wiki/Beta_Firmware/Mac/13.x
|
||||
from_ipsw = "https://updates.cdn-apple.com/2023SummerFCS/fullrestores/042-25658/2D6BE8DB-5549-4F85-8C54-39FC23BABC68/UniversalMac_13.5.1_22G90_Restore.ipsw"
|
||||
from_ipsw = "https://updates.cdn-apple.com/2023FallFCS/fullrestores/042-55833/C0830847-A2F8-458F-B680-967991820931/UniversalMac_13.6_22G120_Restore.ipsw"
|
||||
vm_name = "ventura-vanilla"
|
||||
cpu_count = 4
|
||||
memory_gb = 8
|
||||
@@ -99,13 +99,15 @@ build {
|
||||
// Disable screensaver for admin user
|
||||
"defaults -currentHost write com.apple.screensaver idleTime 0",
|
||||
// Prevent the VM from sleeping
|
||||
"sudo systemsetup -setdisplaysleep Off",
|
||||
"sudo systemsetup -setsleep Off",
|
||||
"sudo systemsetup -setcomputersleep Off",
|
||||
"sudo systemsetup -setdisplaysleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setsleep Off 2>/dev/null",
|
||||
"sudo systemsetup -setcomputersleep Off 2>/dev/null",
|
||||
// Launch Safari to populate the defaults
|
||||
"/Applications/Safari.app/Contents/MacOS/Safari &",
|
||||
"SAFARI_PID=$!",
|
||||
"disown",
|
||||
"sleep 30",
|
||||
"kill -9 %1",
|
||||
"kill -9 $SAFARI_PID",
|
||||
// Enable Safari's remote automation and "Develop" menu
|
||||
"sudo safaridriver --enable",
|
||||
"defaults write com.apple.Safari.SandboxBroker ShowDevelopMenu -bool true",
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
macos_version = "sonoma"
|
||||
gha_version = "2.309.0"
|
||||
xcode_version = "15"
|
||||
gha_version = "2.311.0"
|
||||
xcode_version = "15.1"
|
||||
|
||||
Reference in New Issue
Block a user