mirror of
https://github.com/cirruslabs/macos-image-templates.git
synced 2026-09-30 03:42:04 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
329c3e137e | ||
|
|
e681fe0983 | ||
|
|
2e6e2dfb6e | ||
|
|
0652373c8c | ||
|
|
082799eb6f | ||
|
|
3b47c8dfc6 | ||
|
|
69ed3fe0fa | ||
|
|
256b8cc1c8 | ||
|
|
d7752dd971 | ||
|
|
64b8b7407b | ||
|
|
91c8fbf624 | ||
|
|
aec76f172d | ||
|
|
a2b4e1ebfe | ||
|
|
1f481f72c7 | ||
|
|
463004bc84 | ||
|
|
6755f3d245 | ||
|
|
aa8af495d1 | ||
|
|
4232c64336 | ||
|
|
f4565a71c7 | ||
|
|
971a78c341 | ||
|
|
4f13a88f28 | ||
|
|
ba783a5bc7 | ||
|
|
db71c44bc1 | ||
|
|
5ed6926ec7 | ||
|
|
95ee5a5656 | ||
|
|
ea02816fa7 | ||
|
|
e6a57fc713 | ||
|
|
17dc1dab05 | ||
|
|
b86acf6821 | ||
|
|
537b590859 | ||
|
|
45c214692c | ||
|
|
b94738812f | ||
|
|
2d4e5b9968 | ||
|
|
24607711dc | ||
|
|
081c8ac4e3 | ||
|
|
d0f94cc4c8 | ||
|
|
fe19dc9f17 | ||
|
|
6f8ae07451 | ||
|
|
16a5100187 | ||
|
|
7058092d82 | ||
|
|
0d3b4f4efd | ||
|
|
aad3ba254d | ||
|
|
0c0a90071d | ||
|
|
276b6dde65 | ||
|
|
5e8c823ef0 | ||
|
|
b6445b9d3a | ||
|
|
ad9ce34d12 | ||
|
|
9746337eeb | ||
|
|
f7880705ec | ||
|
|
bc67673068 | ||
|
|
393d7c615b | ||
|
|
f292033e59 | ||
|
|
e3cf995511 | ||
|
|
3c3581a46f | ||
|
|
2fbdfd6186 | ||
|
|
a806b2d4ef | ||
|
|
c48cab887b | ||
|
|
d5d126deaa | ||
|
|
ac6cbef9a6 | ||
|
|
9736671744 | ||
|
|
2ec40d16cb | ||
|
|
ce496aa3ad | ||
|
|
660eac6ae0 | ||
|
|
530036c1bc | ||
|
|
69ca3f729a | ||
|
|
e70eea50c4 | ||
|
|
3ac0f46b3e | ||
|
|
63e44895a7 | ||
|
|
c1d543be58 | ||
|
|
ca553f0b1d | ||
|
|
b9ffc31440 | ||
|
|
0b4954f232 | ||
|
|
f2d0330eec | ||
|
|
6ae3ffd75f | ||
|
|
64f4871059 | ||
|
|
5f35113643 | ||
|
|
9ec94173b3 | ||
|
|
0eafad7bcf | ||
|
|
1fd4c5e3ae | ||
|
|
cfed2eac90 | ||
|
|
7be8facd36 | ||
|
|
6f66644628 | ||
|
|
2401e19f34 |
@@ -4,14 +4,21 @@ task:
|
|||||||
matrix:
|
matrix:
|
||||||
- env:
|
- env:
|
||||||
MACOS_VERSION: sonoma
|
MACOS_VERSION: sonoma
|
||||||
|
DISABLE_SIP_TEMPLATE: disable-sip.pkr.hcl
|
||||||
- env:
|
- env:
|
||||||
MACOS_VERSION: sequoia
|
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
|
<<: *defaults
|
||||||
pull_vanilla_script:
|
pull_vanilla_script:
|
||||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-vanilla:latest
|
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-vanilla:latest
|
||||||
build_base_script:
|
build_base_script:
|
||||||
- packer init templates/base.pkr.hcl
|
- packer init templates/base.pkr.hcl
|
||||||
- packer build -var macos_version="$MACOS_VERSION" 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:
|
push_base_script:
|
||||||
- tart push $MACOS_VERSION-base ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
- tart push $MACOS_VERSION-base ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||||
always:
|
always:
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
task:
|
task:
|
||||||
name: "Release Xcode $CIRRUS_TAG ($MACOS_VERSION)"
|
name: "Release Xcode $CIRRUS_TAG ($MACOS_VERSION)"
|
||||||
matrix:
|
env:
|
||||||
- env:
|
XCODE_COMPONENTS: "MetalToolchain"
|
||||||
MACOS_VERSION: sequoia
|
matrix:
|
||||||
|
- MACOS_VERSION: tahoe
|
||||||
|
- MACOS_VERSION: sequoia
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
pull_base_script:
|
pull_base_script:
|
||||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||||
build_script:
|
build_script:
|
||||||
- packer init templates/xcode.pkr.hcl
|
- 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: |
|
push_script: |
|
||||||
if [[ $CIRRUS_TAG == *"beta"* ]]
|
if [[ $CIRRUS_TAG == *"beta"* ]]
|
||||||
then
|
then
|
||||||
|
|||||||
+17
-9
@@ -1,15 +1,21 @@
|
|||||||
task:
|
task:
|
||||||
name: "Update Runner Image ($MACOS_VERSION)"
|
name: "Update Runner Image ($MACOS_VERSION)"
|
||||||
execution_lock: runner-image-update
|
|
||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
- MACOS_VERSION: sonoma
|
- MACOS_VERSION: sonoma
|
||||||
XCODE_VERSIONS: "16.1,16,15.4,15.3,15.2,15.1,\"15.0.1\""
|
XCODE_VERSIONS: "16.1,16"
|
||||||
DISK_SIZE: 375
|
DISK_SIZE: 230
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
XCODE_VERSIONS: "16.3,\"16.4-beta\",16.2,16.1,16"
|
XCODE_VERSIONS: "\"26.0.1\",16.4,16.3,16.2,16.1,16"
|
||||||
ADDITIONAL_IOS_BUILDS: "18.4,18.2"
|
ADDITIONAL_IOS_BUILDS: "18.5,18.4,18.2,17.5"
|
||||||
DISK_SIZE: 375
|
ADDITIONAL_TVOS_BUILDS: "17.5"
|
||||||
|
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||||
|
DISK_SIZE: 400
|
||||||
|
- MACOS_VERSION: tahoe
|
||||||
|
XCODE_VERSIONS: "\"26.1.1\",\"26.0.1\",\"26.2-beta\""
|
||||||
|
XCODE_COMPONENTS: "\"MetalToolchain\""
|
||||||
|
ADDITIONAL_IOS_BUILDS: "18.6"
|
||||||
|
DISK_SIZE: 290
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
pull_base_script:
|
pull_base_script:
|
||||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||||
@@ -20,13 +26,15 @@ task:
|
|||||||
-var macos_version="$MACOS_VERSION" \
|
-var macos_version="$MACOS_VERSION" \
|
||||||
-var xcode_version="[$XCODE_VERSIONS]" \
|
-var xcode_version="[$XCODE_VERSIONS]" \
|
||||||
-var additional_ios_builds="[$ADDITIONAL_IOS_BUILDS]" \
|
-var additional_ios_builds="[$ADDITIONAL_IOS_BUILDS]" \
|
||||||
|
-var additional_tvos_builds="[$ADDITIONAL_TVOS_BUILDS]" \
|
||||||
|
-var xcode_components="[$XCODE_COMPONENTS]" \
|
||||||
-var expected_runtimes_file="data/expected.$MACOS_VERSION.runtimes.txt" \
|
-var expected_runtimes_file="data/expected.$MACOS_VERSION.runtimes.txt" \
|
||||||
templates/xcode.pkr.hcl
|
templates/xcode.pkr.hcl
|
||||||
push_script: |
|
push_script: |
|
||||||
if [[ -z "$CIRRUS_CRON" ]]; then
|
if [[ -z "$CIRRUS_PR" ]]; then
|
||||||
echo "Not a cron build, skipping pushing..."
|
|
||||||
else
|
|
||||||
tart push "$MACOS_VERSION-xcode:runner" ghcr.io/cirruslabs/macos-runner:$MACOS_VERSION
|
tart push "$MACOS_VERSION-xcode:runner" ghcr.io/cirruslabs/macos-runner:$MACOS_VERSION
|
||||||
|
else
|
||||||
|
echo "Skipping pushing for PR..."
|
||||||
fi
|
fi
|
||||||
always:
|
always:
|
||||||
cleanup_script:
|
cleanup_script:
|
||||||
|
|||||||
@@ -1,24 +1,20 @@
|
|||||||
env:
|
env:
|
||||||
RESOLVE_VM_NAME: "resolve-macos-number-task-id-${CIRRUS_TASK_ID}"
|
RESOLVE_VM_NAME: "resolve-macos-number-task-id-${CIRRUS_TASK_ID}"
|
||||||
RESOLVE_FILE: "${RESOLVE_VM_NAME}.txt"
|
RESOLVE_FILE: "${RESOLVE_VM_NAME}.txt"
|
||||||
DISABLE_SIP_TEMPLATE: disable-sip.pkr.hcl
|
|
||||||
|
|
||||||
task:
|
task:
|
||||||
name: "Update Vanilla Image ($MACOS_VERSION)"
|
name: "Update Vanilla Image ($MACOS_VERSION)"
|
||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
|
- MACOS_VERSION: tahoe
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
DISABLE_SIP_TEMPLATE: disable-sip-with-username.pkr.hcl
|
|
||||||
- MACOS_VERSION: sonoma
|
- MACOS_VERSION: sonoma
|
||||||
- MACOS_VERSION: ventura
|
|
||||||
- MACOS_VERSION: monterey
|
- MACOS_VERSION: monterey
|
||||||
only_if: $CIRRUS_BRANCH == $CIRRUS_DEFAULT_BRANCH && changesInclude("templates/vanilla-$MACOS_VERSION.pkr.hcl")
|
only_if: $CIRRUS_BRANCH == $CIRRUS_DEFAULT_BRANCH && changesInclude("templates/vanilla-$MACOS_VERSION.pkr.hcl")
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
build_script:
|
build_script:
|
||||||
- packer init templates/vanilla-$MACOS_VERSION.pkr.hcl
|
- packer init templates/vanilla-$MACOS_VERSION.pkr.hcl
|
||||||
- packer build 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:
|
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
|
- 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
|
- echo "MACOS_NUMBER=$(cat $RESOLVE_FILE)" >> $CIRRUS_ENV
|
||||||
|
|||||||
+12
-3
@@ -3,11 +3,18 @@ task:
|
|||||||
depends_on: update-base
|
depends_on: update-base
|
||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
|
- MACOS_VERSION: tahoe
|
||||||
|
XCODE_VERSION: "26.1.1"
|
||||||
|
XCODE_COMPONENTS: "MetalToolchain"
|
||||||
|
LATEST: true
|
||||||
|
- MACOS_VERSION: tahoe
|
||||||
|
XCODE_VERSION: "26.0.1"
|
||||||
|
XCODE_COMPONENTS: "MetalToolchain"
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
XCODE_VERSION: 16.4-beta
|
XCODE_VERSION: 16.4
|
||||||
|
LATEST: true
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
XCODE_VERSION: 16.3
|
XCODE_VERSION: 16.3
|
||||||
LATEST: true
|
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
XCODE_VERSION: 16.2
|
XCODE_VERSION: 16.2
|
||||||
- MACOS_VERSION: sequoia
|
- MACOS_VERSION: sequoia
|
||||||
@@ -19,12 +26,14 @@ task:
|
|||||||
LATEST: true
|
LATEST: true
|
||||||
- MACOS_VERSION: sonoma
|
- MACOS_VERSION: sonoma
|
||||||
XCODE_VERSION: 16
|
XCODE_VERSION: 16
|
||||||
|
- MACOS_VERSION: sonoma
|
||||||
|
XCODE_VERSION: 15.4
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
pull_base_script:
|
pull_base_script:
|
||||||
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
- tart pull ghcr.io/cirruslabs/macos-$MACOS_VERSION-base:latest
|
||||||
build_xcode_script:
|
build_xcode_script:
|
||||||
- packer init templates/xcode.pkr.hcl
|
- 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: |
|
push_script: |
|
||||||
if [[ -z "$LATEST" ]]
|
if [[ -z "$LATEST" ]]
|
||||||
then
|
then
|
||||||
|
|||||||
+2
-1
@@ -46,6 +46,7 @@ def main(ctx):
|
|||||||
if env.get("CIRRUS_CRON") == "monthly":
|
if env.get("CIRRUS_CRON") == "monthly":
|
||||||
result += fs.read(".ci/cirrus.base.yml")
|
result += fs.read(".ci/cirrus.base.yml")
|
||||||
result += fs.read(".ci/cirrus.xcode.yml")
|
result += fs.read(".ci/cirrus.xcode.yml")
|
||||||
if env.get("CIRRUS_CRON") == "weekly" or changes_include(".ci/cirrus.runner.yml"):
|
prForRunners = env.get("CIRRUS_PR") and changes_include(".ci/cirrus.runner.yml")
|
||||||
|
if prForRunners or env.get("CIRRUS_TAG") != None:
|
||||||
result += fs.read(".ci/cirrus.runner.yml")
|
result += fs.read(".ci/cirrus.runner.yml")
|
||||||
return result
|
return result
|
||||||
|
|||||||
@@ -13,9 +13,6 @@ env:
|
|||||||
|
|
||||||
defaults: &defaults
|
defaults: &defaults
|
||||||
timeout_in: 3h
|
timeout_in: 3h
|
||||||
update_script:
|
|
||||||
- brew update || true
|
|
||||||
- brew upgrade || true
|
|
||||||
info_script:
|
info_script:
|
||||||
- tart --version
|
- tart --version
|
||||||
- packer --version
|
- packer --version
|
||||||
|
|||||||
@@ -5,28 +5,21 @@ Repository with Packer templates to build macOS [Tart](https://tart.run/) virtua
|
|||||||
|
|
||||||
The following image variants are currently available:
|
The following image variants are currently available:
|
||||||
|
|
||||||
* `macos-{sequoia,sonoma}-base` image has only `brew` pre-installed and the latest version of `macOS` available
|
* `macos-{tahoe,sequoia,sonoma}-vanilla` — a vanilla macOS installation with helpful tweaks such as auto-login, but no additional software preinstalled
|
||||||
* `macos-{sequoia,sonoma}-xcode:N` image is based on `macos-{sequoia,sonoma}-base` image and has `Xcode N` with [`Flutter`](https://flutter.dev/) pre-installed
|
* `macos-{tahoe,sequoia,sonoma}-base` — based on `macos-{tahoe,sequoia,sonoma}-vanilla` image, it comes with `brew` and [other useful software](https://github.com/cirruslabs/macos-image-templates/blob/main/templates/base.pkr.hcl) pre-installed, but without Xcode
|
||||||
* `macos-runner:{sequoia,sonoma}` image is a variant of `xcode:N` with several versions of `Xcode` pre-installed and [`xcodes` tool](https://github.com/XcodesOrg/xcodes) to switch between them.
|
* `macos-{tahoe,sequoia,sonoma}-xcode:N` — based on `macos-{tahoe,sequoia,sonoma}-base` image and has `Xcode N` with [`Flutter`](https://flutter.dev/) pre-installed
|
||||||
|
* `macos-runner:{tahoe,sequoia,sonoma}` — a variant of `xcode:N` with several versions of `Xcode` pre-installed and [`xcodes` tool](https://github.com/XcodesOrg/xcodes) to switch between them.
|
||||||
|
|
||||||
See a full list of VMs available [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-).
|
||||||
|
|
||||||
## Release Cadence
|
## Release Cadence
|
||||||
|
|
||||||
Once a new version of Xcode is released, we will initiate a GitHub release which will automatically build and push
|
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-{tahoe,sequoia}-xcode:N`. This generally happens the next weekend after a release.
|
||||||
Please watch this repository releases to get notified about new images.
|
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
|
## Update Cadence
|
||||||
|
|
||||||
Some of the images are regularly getting rebuild in order to update the pre-installed packages. The following images are updated
|
Some of the images are regularly getting rebuild in order to update the pre-installed packages.
|
||||||
monthly on the first Saturday of the month:
|
|
||||||
|
|
||||||
* `ghcr.io/cirruslabs/macos-{sequoia,sonoma}-base`
|
[This configuration file](.ci/cirrus.release.yml) defines images that are getting rebuilt monthly on the first Saturday of the month.
|
||||||
* `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.
|
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
== Runtimes ==
|
== Runtimes ==
|
||||||
|
iOS 17.5 (17.5 - 21F79) - com.apple.CoreSimulator.SimRuntime.iOS-17-5
|
||||||
iOS 18.0 (18.0 - 22A3351) - com.apple.CoreSimulator.SimRuntime.iOS-18-0
|
iOS 18.0 (18.0 - 22A3351) - com.apple.CoreSimulator.SimRuntime.iOS-18-0
|
||||||
iOS 18.1 (18.1 - 22B81) - com.apple.CoreSimulator.SimRuntime.iOS-18-1
|
iOS 18.1 (18.1 - 22B81) - com.apple.CoreSimulator.SimRuntime.iOS-18-1
|
||||||
iOS 18.2 (18.2 - 22C150) - com.apple.CoreSimulator.SimRuntime.iOS-18-2
|
iOS 18.2 (18.2 - 22C150) - com.apple.CoreSimulator.SimRuntime.iOS-18-2
|
||||||
iOS 18.3 (18.3.1 - 22D8075) - com.apple.CoreSimulator.SimRuntime.iOS-18-3
|
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.4 (18.4 - 22E238) - com.apple.CoreSimulator.SimRuntime.iOS-18-4
|
||||||
iOS 18.5 (18.5 - 22F5067a) - com.apple.CoreSimulator.SimRuntime.iOS-18-5
|
iOS 18.5 (18.5 - 22F77) - com.apple.CoreSimulator.SimRuntime.iOS-18-5
|
||||||
tvOS 18.0 (18.0 - 22J356) - com.apple.CoreSimulator.SimRuntime.tvOS-18-0
|
iOS 18.6 (18.6 - 22G86) - com.apple.CoreSimulator.SimRuntime.iOS-18-6
|
||||||
tvOS 18.1 (18.1 - 22J578) - com.apple.CoreSimulator.SimRuntime.tvOS-18-1
|
iOS 26.0 (26.0.1 - 23A8464) - com.apple.CoreSimulator.SimRuntime.iOS-26-0
|
||||||
tvOS 18.2 (18.2 - 22K154) - com.apple.CoreSimulator.SimRuntime.tvOS-18-2
|
tvOS 17.5 (17.5 - 21L569) - com.apple.CoreSimulator.SimRuntime.tvOS-17-5
|
||||||
tvOS 18.4 (18.4 - 22L254) - com.apple.CoreSimulator.SimRuntime.tvOS-18-4
|
tvOS 18.4 (18.4 - 22L254) - com.apple.CoreSimulator.SimRuntime.tvOS-18-4
|
||||||
tvOS 18.5 (18.5 - 22L5565a) - com.apple.CoreSimulator.SimRuntime.tvOS-18-5
|
tvOS 18.5 (18.5 - 22L572) - com.apple.CoreSimulator.SimRuntime.tvOS-18-5
|
||||||
watchOS 11.0 (11.0 - 22R349) - com.apple.CoreSimulator.SimRuntime.watchOS-11-0
|
tvOS 26.0 (26.0 - 23J352) - com.apple.CoreSimulator.SimRuntime.tvOS-26-0
|
||||||
watchOS 11.1 (11.1 - 22R581) - com.apple.CoreSimulator.SimRuntime.watchOS-11-1
|
|
||||||
watchOS 11.2 (11.2 - 22S99) - com.apple.CoreSimulator.SimRuntime.watchOS-11-2
|
|
||||||
watchOS 11.4 (11.4 - 22T250) - com.apple.CoreSimulator.SimRuntime.watchOS-11-4
|
watchOS 11.4 (11.4 - 22T250) - com.apple.CoreSimulator.SimRuntime.watchOS-11-4
|
||||||
watchOS 11.5 (11.5 - 22T5566a) - com.apple.CoreSimulator.SimRuntime.watchOS-11-5
|
watchOS 11.5 (11.5 - 22T572) - com.apple.CoreSimulator.SimRuntime.watchOS-11-5
|
||||||
visionOS 2.0 (2.0 - 22N318) - com.apple.CoreSimulator.SimRuntime.xrOS-2-0
|
watchOS 26.0 (26.0 - 23R353) - com.apple.CoreSimulator.SimRuntime.watchOS-26-0
|
||||||
visionOS 2.1 (2.1 - 22N580) - com.apple.CoreSimulator.SimRuntime.xrOS-2-1
|
|
||||||
visionOS 2.3 (2.3 - 22N895) - com.apple.CoreSimulator.SimRuntime.xrOS-2-3
|
|
||||||
visionOS 2.4 (2.4 - 22O237) - com.apple.CoreSimulator.SimRuntime.xrOS-2-4
|
visionOS 2.4 (2.4 - 22O237) - com.apple.CoreSimulator.SimRuntime.xrOS-2-4
|
||||||
visionOS 2.5 (2.5 - 22O5467a) - com.apple.CoreSimulator.SimRuntime.xrOS-2-5
|
visionOS 2.5 (2.5 - 22O473) - com.apple.CoreSimulator.SimRuntime.xrOS-2-5
|
||||||
|
visionOS 26.0 (26.0 - 23M336) - com.apple.CoreSimulator.SimRuntime.xrOS-26-0
|
||||||
|
|||||||
@@ -1,24 +1,9 @@
|
|||||||
== Runtimes ==
|
== Runtimes ==
|
||||||
iOS 17.0 (17.0.1 - 21A342) - com.apple.CoreSimulator.SimRuntime.iOS-17-0
|
|
||||||
iOS 17.2 (17.2 - 21C62) - com.apple.CoreSimulator.SimRuntime.iOS-17-2
|
|
||||||
iOS 17.4 (17.4 - 21E213) - com.apple.CoreSimulator.SimRuntime.iOS-17-4
|
|
||||||
iOS 17.5 (17.5 - 21F79) - com.apple.CoreSimulator.SimRuntime.iOS-17-5
|
|
||||||
iOS 18.0 (18.0 - 22A3351) - com.apple.CoreSimulator.SimRuntime.iOS-18-0
|
iOS 18.0 (18.0 - 22A3351) - com.apple.CoreSimulator.SimRuntime.iOS-18-0
|
||||||
iOS 18.1 (18.1 - 22B81) - com.apple.CoreSimulator.SimRuntime.iOS-18-1
|
iOS 18.1 (18.1 - 22B81) - com.apple.CoreSimulator.SimRuntime.iOS-18-1
|
||||||
tvOS 17.0 (17.0 - 21J353) - com.apple.CoreSimulator.SimRuntime.tvOS-17-0
|
|
||||||
tvOS 17.2 (17.2 - 21K364) - com.apple.CoreSimulator.SimRuntime.tvOS-17-2
|
|
||||||
tvOS 17.4 (17.4 - 21L224) - com.apple.CoreSimulator.SimRuntime.tvOS-17-4
|
|
||||||
tvOS 17.5 (17.5 - 21L569) - com.apple.CoreSimulator.SimRuntime.tvOS-17-5
|
|
||||||
tvOS 18.0 (18.0 - 22J356) - com.apple.CoreSimulator.SimRuntime.tvOS-18-0
|
tvOS 18.0 (18.0 - 22J356) - com.apple.CoreSimulator.SimRuntime.tvOS-18-0
|
||||||
tvOS 18.1 (18.1 - 22J578) - com.apple.CoreSimulator.SimRuntime.tvOS-18-1
|
tvOS 18.1 (18.1 - 22J578) - com.apple.CoreSimulator.SimRuntime.tvOS-18-1
|
||||||
watchOS 10.0 (10.0 - 21R355) - com.apple.CoreSimulator.SimRuntime.watchOS-10-0
|
|
||||||
watchOS 10.2 (10.2 - 21S364) - com.apple.CoreSimulator.SimRuntime.watchOS-10-2
|
|
||||||
watchOS 10.4 (10.4 - 21T214) - com.apple.CoreSimulator.SimRuntime.watchOS-10-4
|
|
||||||
watchOS 10.5 (10.5 - 21T575) - com.apple.CoreSimulator.SimRuntime.watchOS-10-5
|
|
||||||
watchOS 11.0 (11.0 - 22R349) - com.apple.CoreSimulator.SimRuntime.watchOS-11-0
|
watchOS 11.0 (11.0 - 22R349) - com.apple.CoreSimulator.SimRuntime.watchOS-11-0
|
||||||
watchOS 11.1 (11.1 - 22R581) - com.apple.CoreSimulator.SimRuntime.watchOS-11-1
|
watchOS 11.1 (11.1 - 22R581) - com.apple.CoreSimulator.SimRuntime.watchOS-11-1
|
||||||
visionOS 1.0 (1.0 - 21N305) - com.apple.CoreSimulator.SimRuntime.xrOS-1-0
|
|
||||||
visionOS 1.1 (1.1 - 21O209) - com.apple.CoreSimulator.SimRuntime.xrOS-1-1
|
|
||||||
visionOS 1.2 (1.2 - 21O5565d) - com.apple.CoreSimulator.SimRuntime.xrOS-1-2
|
|
||||||
visionOS 2.0 (2.0 - 22N318) - com.apple.CoreSimulator.SimRuntime.xrOS-2-0
|
visionOS 2.0 (2.0 - 22N318) - com.apple.CoreSimulator.SimRuntime.xrOS-2-0
|
||||||
visionOS 2.1 (2.1 - 22N580) - com.apple.CoreSimulator.SimRuntime.xrOS-2-1
|
visionOS 2.1 (2.1 - 22N580) - com.apple.CoreSimulator.SimRuntime.xrOS-2-1
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
== Runtimes ==
|
||||||
|
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
|
||||||
@@ -42,6 +42,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Fastlane Version",
|
"name": "Fastlane Version",
|
||||||
"script": "fastlane --version"
|
"script": "fastlane --version"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SwiftLint Version",
|
||||||
|
"script": "swiftlint --version"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,15 +7,17 @@
|
|||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/opt/homebrew/bin/tart-guest-agent</string>
|
<string>/opt/homebrew/bin/tart-guest-agent</string>
|
||||||
<string>--run-vdagent</string>
|
<string>--run-agent</string>
|
||||||
</array>
|
</array>
|
||||||
<key>EnvironmentVariables</key>
|
<key>EnvironmentVariables</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin</string>
|
<string>/bin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/homebrew/bin</string>
|
||||||
|
<key>TERM</key>
|
||||||
|
<string>xterm-256color</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>WorkingDirectory</key>
|
<key>WorkingDirectory</key>
|
||||||
<string>/var/empty</string>
|
<string>/Users/admin</string>
|
||||||
<key>RunAtLoad</key>
|
<key>RunAtLoad</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>KeepAlive</key>
|
<key>KeepAlive</key>
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/opt/homebrew/bin/tart-guest-agent</string>
|
<string>/opt/homebrew/bin/tart-guest-agent</string>
|
||||||
<string>--resize-disk</string>
|
<string>--run-daemon</string>
|
||||||
</array>
|
</array>
|
||||||
<key>EnvironmentVariables</key>
|
<key>EnvironmentVariables</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin</string>
|
<string>/bin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/homebrew/bin</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>WorkingDirectory</key>
|
<key>WorkingDirectory</key>
|
||||||
<string>/var/empty</string>
|
<string>/var/empty</string>
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
<key>KeepAlive</key>
|
<key>KeepAlive</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>StandardOutPath</key>
|
<key>StandardOutPath</key>
|
||||||
<string>/tmp/tart-guest-agent.log</string>
|
<string>/tmp/tart-guest-daemon.log</string>
|
||||||
<key>StandardErrorPath</key>
|
<key>StandardErrorPath</key>
|
||||||
<string>/tmp/tart-guest-agent.log</string>
|
<string>/tmp/tart-guest-daemon.log</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ build {
|
|||||||
"brew --version",
|
"brew --version",
|
||||||
"brew update",
|
"brew update",
|
||||||
"brew install wget unzip zip ca-certificates cmake gcc git-lfs jq yq gh gitlab-runner",
|
"brew install wget unzip zip ca-certificates cmake gcc git-lfs jq yq gh gitlab-runner",
|
||||||
|
"brew install equinix-labs/otel-cli/otel-cli",
|
||||||
"brew install curl || true", // doesn't work on Monterey
|
"brew install curl || true", // doesn't work on Monterey
|
||||||
"brew install --cask git-credential-manager",
|
"brew install --cask git-credential-manager",
|
||||||
"git lfs install",
|
"git lfs install",
|
||||||
@@ -105,6 +106,7 @@ build {
|
|||||||
"brew install libyaml", # https://github.com/rbenv/ruby-build/discussions/2118
|
"brew install libyaml", # https://github.com/rbenv/ruby-build/discussions/2118
|
||||||
"brew install rbenv",
|
"brew install rbenv",
|
||||||
"echo 'if which rbenv > /dev/null; then eval \"$(rbenv init -)\"; fi' >> ~/.zprofile",
|
"echo 'if which rbenv > /dev/null; then eval \"$(rbenv init -)\"; fi' >> ~/.zprofile",
|
||||||
|
"brew install mise",
|
||||||
"source ~/.zprofile",
|
"source ~/.zprofile",
|
||||||
"rbenv install 2.7.8", // latest 2.x.x before EOL
|
"rbenv install 2.7.8", // latest 2.x.x before EOL
|
||||||
"rbenv install -l | grep -v - | tail -2 | xargs -L1 rbenv install",
|
"rbenv install -l | grep -v - | tail -2 | xargs -L1 rbenv install",
|
||||||
@@ -145,8 +147,7 @@ build {
|
|||||||
inline = [
|
inline = [
|
||||||
"source ~/.zprofile",
|
"source ~/.zprofile",
|
||||||
"test -d /Users/runner",
|
"test -d /Users/runner",
|
||||||
"test -f ~/.ssh/known_hosts",
|
"test -f ~/.ssh/known_hosts"
|
||||||
"brew doctor"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,15 @@ packer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source "tart-cli" "tart" {
|
source "tart-cli" "tart" {
|
||||||
from_ipsw = "https://updates.cdn-apple.com/2025SpringFCS/fullrestores/082-23340/61923341-EE73-4C6E-BB3E-DAB3069548BF/UniversalMac_15.4.1_24E263_Restore.ipsw"
|
// will be update to 15.7
|
||||||
|
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"
|
vm_name = "sequoia-vanilla"
|
||||||
cpu_count = 4
|
cpu_count = 4
|
||||||
memory_gb = 8
|
memory_gb = 8
|
||||||
disk_size_gb = 50
|
disk_size_gb = 50
|
||||||
ssh_password = "admin"
|
ssh_password = "admin"
|
||||||
ssh_username = "admin"
|
ssh_username = "admin"
|
||||||
ssh_timeout = "300s"
|
ssh_timeout = "180s"
|
||||||
boot_command = [
|
boot_command = [
|
||||||
# hello, hola, bonjour, etc.
|
# hello, hola, bonjour, etc.
|
||||||
"<wait60s><spacebar>",
|
"<wait60s><spacebar>",
|
||||||
|
|||||||
@@ -12,14 +12,15 @@ packer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source "tart-cli" "tart" {
|
source "tart-cli" "tart" {
|
||||||
from_ipsw = "https://updates.cdn-apple.com/2024SummerFCS/fullrestores/052-69922/F5DA2B64-25EB-4370-9E89-FA5689859796/UniversalMac_14.6_23G80_Restore.ipsw"
|
// will be update to 14.8
|
||||||
|
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"
|
vm_name = "sonoma-vanilla"
|
||||||
cpu_count = 4
|
cpu_count = 4
|
||||||
memory_gb = 8
|
memory_gb = 8
|
||||||
disk_size_gb = 50
|
disk_size_gb = 50
|
||||||
ssh_password = "admin"
|
ssh_password = "admin"
|
||||||
ssh_username = "admin"
|
ssh_username = "admin"
|
||||||
ssh_timeout = "120s"
|
ssh_timeout = "180s"
|
||||||
boot_command = [
|
boot_command = [
|
||||||
# hello, hola, bonjour, etc.
|
# hello, hola, bonjour, etc.
|
||||||
"<wait60s><spacebar>",
|
"<wait60s><spacebar>",
|
||||||
|
|||||||
@@ -0,0 +1,154 @@
|
|||||||
|
packer {
|
||||||
|
required_plugins {
|
||||||
|
tart = {
|
||||||
|
version = ">= 1.12.0"
|
||||||
|
source = "github.com/cirruslabs/tart"
|
||||||
|
}
|
||||||
|
ansible = {
|
||||||
|
version = "~> 1"
|
||||||
|
source = "github.com/hashicorp/ansible"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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"
|
||||||
|
vm_name = "tahoe-vanilla"
|
||||||
|
cpu_count = 4
|
||||||
|
memory_gb = 8
|
||||||
|
disk_size_gb = 50
|
||||||
|
ssh_password = "admin"
|
||||||
|
ssh_username = "admin"
|
||||||
|
ssh_timeout = "180s"
|
||||||
|
boot_command = [
|
||||||
|
# hello, hola, bonjour, etc.
|
||||||
|
"<wait60s><spacebar>",
|
||||||
|
# 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 or Region
|
||||||
|
"<wait60s>united states<leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Transfer Your Data to This Mac
|
||||||
|
"<wait10s><tab><tab><tab><spacebar><tab><tab><spacebar>",
|
||||||
|
# Written and Spoken Languages
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Accessibility
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Data & Privacy
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Create a Mac Account
|
||||||
|
"<wait10s><tab><tab><tab><tab><tab><tab>Managed via Tart<tab>admin<tab>admin<tab>admin<tab><tab><spacebar><tab><tab><spacebar>",
|
||||||
|
# Enable Voice Over
|
||||||
|
"<wait120s><leftAltOn><f5><leftAltOff>",
|
||||||
|
# Sign In with Your Apple ID
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Are you sure you want to skip signing in with an Apple ID?
|
||||||
|
"<wait10s><tab><spacebar>",
|
||||||
|
# Terms and Conditions
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# I have read and agree to the macOS Software License Agreement
|
||||||
|
"<wait10s><tab><spacebar>",
|
||||||
|
# Enable Location Services
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Are you sure you don't want to use Location Services?
|
||||||
|
"<wait10s><tab><spacebar>",
|
||||||
|
# Select Your Time Zone
|
||||||
|
"<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>",
|
||||||
|
# Choose Your Look
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>",
|
||||||
|
# Update Mac Automatically
|
||||||
|
"<wait10s><tab><tab><spacebar>",
|
||||||
|
# Welcome to Mac
|
||||||
|
"<wait30s><spacebar>",
|
||||||
|
# Disable Voice Over
|
||||||
|
"<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<wait10s><enter>",
|
||||||
|
"<wait10s><wait10s>defaults write NSGlobalDomain AppleKeyboardUIMode -int 3<enter>",
|
||||||
|
# Now that the installation is done, open "System Settings"
|
||||||
|
# On Tahoe opening System Settings through Spotlight is not very reliable, sometimes opens System information
|
||||||
|
"<wait10s>open '/System/Applications/System Settings.app'<enter>",
|
||||||
|
# Navigate to "Sharing"
|
||||||
|
"<wait10s><leftCtrlOn><f2><leftCtrlOff><right><right><right><down>Sharing<enter>",
|
||||||
|
# Navigate to "Screen Sharing" and enable it
|
||||||
|
"<wait10s><tab><tab><tab><tab><tab><spacebar>",
|
||||||
|
# Navigate to "Remote Login" and enable it
|
||||||
|
"<wait10s><tab><tab><tab><tab><tab><tab><tab><tab><tab><tab><tab><tab><spacebar>",
|
||||||
|
# Quit System Settings
|
||||||
|
"<wait10s><leftAltOn>q<leftAltOff>",
|
||||||
|
# Disable Gatekeeper (1/2)
|
||||||
|
"<wait10s>sudo spctl --global-disable<enter>",
|
||||||
|
"<wait10s>admin<enter>",
|
||||||
|
# Disable Gatekeeper (2/2)
|
||||||
|
# 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><down><wait1s><down><wait1s><enter>",
|
||||||
|
"<wait10s>admin<enter>",
|
||||||
|
"<wait10s><leftShiftOn><tab><leftShiftOff><wait1s><spacebar>",
|
||||||
|
# Quit System Settings
|
||||||
|
"<wait10s><leftAltOn>q<leftAltOff>",
|
||||||
|
]
|
||||||
|
|
||||||
|
// A (hopefully) temporary workaround for Virtualization.Framework's
|
||||||
|
// installation process not fully finishing in a timely manner
|
||||||
|
create_grace_time = "30s"
|
||||||
|
|
||||||
|
// Keep the recovery partition, otherwise it's not possible to "softwareupdate"
|
||||||
|
recovery_partition = "keep"
|
||||||
|
}
|
||||||
|
|
||||||
|
build {
|
||||||
|
sources = ["source.tart-cli.tart"]
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
// Enable passwordless sudo
|
||||||
|
"echo admin | sudo -S sh -c \"mkdir -p /etc/sudoers.d/; echo 'admin ALL=(ALL) NOPASSWD: ALL' | EDITOR=tee visudo /etc/sudoers.d/admin-nopasswd\"",
|
||||||
|
// Enable auto-login
|
||||||
|
//
|
||||||
|
// See https://github.com/xfreebird/kcpassword for details.
|
||||||
|
"echo '00000000: 1ced 3f4a bcbc ba2c caca 4e82' | sudo xxd -r - /etc/kcpassword",
|
||||||
|
"sudo defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser admin",
|
||||||
|
// Disable screensaver at login screen
|
||||||
|
"sudo defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0",
|
||||||
|
// Disable screensaver for admin user
|
||||||
|
"defaults -currentHost write com.apple.screensaver idleTime 0",
|
||||||
|
// Prevent the VM from sleeping
|
||||||
|
"sudo systemsetup -setsleep Off 2>/dev/null",
|
||||||
|
// Launch Safari to populate the defaults
|
||||||
|
"/Applications/Safari.app/Contents/MacOS/Safari &",
|
||||||
|
"SAFARI_PID=$!",
|
||||||
|
"disown",
|
||||||
|
"sleep 30",
|
||||||
|
"kill -9 $SAFARI_PID",
|
||||||
|
// Enable Safari's remote automation
|
||||||
|
"sudo safaridriver --enable",
|
||||||
|
// Disable screen lock
|
||||||
|
//
|
||||||
|
// Note that this only works if the user is logged-in,
|
||||||
|
// i.e. not on login screen.
|
||||||
|
"sysadminctl -screenLock off -password admin",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
# Ensure that Gatekeeper is disabled
|
||||||
|
"spctl --status | grep -q 'assessments disabled'"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
+111
-28
@@ -20,6 +20,17 @@ variable "additional_ios_builds" {
|
|||||||
default = []
|
default = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "additional_tvos_builds" {
|
||||||
|
type = list(string)
|
||||||
|
default = []
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "xcode_components" {
|
||||||
|
type = list(string)
|
||||||
|
default = []
|
||||||
|
description = "Additional Xcode components to download."
|
||||||
|
}
|
||||||
|
|
||||||
variable "expected_runtimes_file" {
|
variable "expected_runtimes_file" {
|
||||||
type = string
|
type = string
|
||||||
default = ""
|
default = ""
|
||||||
@@ -33,7 +44,7 @@ variable "tag" {
|
|||||||
|
|
||||||
variable "disk_size" {
|
variable "disk_size" {
|
||||||
type = number
|
type = number
|
||||||
default = 100
|
default = 120
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "disk_free_mb" {
|
variable "disk_free_mb" {
|
||||||
@@ -72,8 +83,9 @@ locals {
|
|||||||
"APP_DIR=$(dirname $CONTENTS_DIR)",
|
"APP_DIR=$(dirname $CONTENTS_DIR)",
|
||||||
"sudo mv $APP_DIR /Applications/Xcode_${version}.app",
|
"sudo mv $APP_DIR /Applications/Xcode_${version}.app",
|
||||||
"sudo xcode-select -s /Applications/Xcode_${version}.app",
|
"sudo xcode-select -s /Applications/Xcode_${version}.app",
|
||||||
"xcodebuild -downloadAllPlatforms",
|
"xcodebuild -downloadPlatform iOS",
|
||||||
"xcodebuild -runFirstLaunch",
|
"xcodebuild -runFirstLaunch",
|
||||||
|
"df -h",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -125,21 +137,7 @@ build {
|
|||||||
provisioner "shell" {
|
provisioner "shell" {
|
||||||
inline = [
|
inline = [
|
||||||
"source ~/.zprofile",
|
"source ~/.zprofile",
|
||||||
"brew install libimobiledevice ideviceinstaller ios-deploy carthage",
|
"brew install xcodes",
|
||||||
"brew install xcbeautify",
|
|
||||||
"rbenv global 3.3.8", # fastlane conflicts with 3.4.0+ https://github.com/fastlane/fastlane/issues/29527
|
|
||||||
"gem update",
|
|
||||||
"gem install fastlane",
|
|
||||||
"gem install cocoapods",
|
|
||||||
"gem install xcpretty",
|
|
||||||
"gem uninstall --ignore-dependencies ffi && gem install ffi -- --enable-libffi-alloc"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
provisioner "shell" {
|
|
||||||
inline = [
|
|
||||||
"source ~/.zprofile",
|
|
||||||
"brew install xcodesorg/made/xcodes",
|
|
||||||
"xcodes version",
|
"xcodes version",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -149,6 +147,13 @@ build {
|
|||||||
destination = "/Users/admin/Downloads/"
|
destination = "/Users/admin/Downloads/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
"source ~/.zprofile",
|
||||||
|
"df -h",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
// iterate over all Xcode versions and install them
|
// iterate over all Xcode versions and install them
|
||||||
// select the latest one as the default
|
// select the latest one as the default
|
||||||
dynamic "provisioner" {
|
dynamic "provisioner" {
|
||||||
@@ -159,10 +164,35 @@ build {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dynamic "provisioner" {
|
||||||
|
for_each = length(var.xcode_version) > 2 ? [2] : []
|
||||||
|
labels = ["shell"]
|
||||||
|
content {
|
||||||
|
inline = [
|
||||||
|
"source ~/.zprofile",
|
||||||
|
"sudo xcodes select '${var.xcode_version[2]}'",
|
||||||
|
"xcodebuild -downloadAllPlatforms",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dynamic "provisioner" {
|
||||||
|
for_each = length(var.xcode_version) > 1 ? [1] : []
|
||||||
|
labels = ["shell"]
|
||||||
|
content {
|
||||||
|
inline = [
|
||||||
|
"source ~/.zprofile",
|
||||||
|
"sudo xcodes select '${var.xcode_version[1]}'",
|
||||||
|
"xcodebuild -downloadAllPlatforms",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
provisioner "shell" {
|
provisioner "shell" {
|
||||||
inline = [
|
inline = [
|
||||||
"source ~/.zprofile",
|
"source ~/.zprofile",
|
||||||
"sudo xcodes select '${var.xcode_version[0]}'",
|
"sudo xcodes select '${var.xcode_version[0]}'",
|
||||||
|
"xcodebuild -downloadAllPlatforms",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,6 +205,39 @@ build {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = concat(
|
||||||
|
["source ~/.zprofile"],
|
||||||
|
[
|
||||||
|
for runtime in var.additional_tvos_builds : "xcodebuild -downloadPlatform tvOS -buildVersion ${runtime}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = concat(
|
||||||
|
["source ~/.zprofile"],
|
||||||
|
[
|
||||||
|
for component in var.xcode_components : "xcodebuild -downloadComponent ${component}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
"source ~/.zprofile",
|
||||||
|
"brew install libimobiledevice ideviceinstaller ios-deploy carthage",
|
||||||
|
"brew install xcbeautify swiftformat swiftlint swiftgen licenseplist",
|
||||||
|
"brew install mint tuist/tuist/tuist",
|
||||||
|
"rbenv global 3.3.10", # fastlane conflicts with 3.4.0+ https://github.com/fastlane/fastlane/issues/29527
|
||||||
|
"gem update",
|
||||||
|
"gem install fastlane",
|
||||||
|
"gem install cocoapods",
|
||||||
|
"gem install xcpretty",
|
||||||
|
"gem uninstall --ignore-dependencies ffi && gem install ffi -- --enable-libffi-alloc"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
// Copy expected runtimes file if provided
|
// Copy expected runtimes file if provided
|
||||||
dynamic "provisioner" {
|
dynamic "provisioner" {
|
||||||
for_each = var.expected_runtimes_file != "" ? [1] : []
|
for_each = var.expected_runtimes_file != "" ? [1] : []
|
||||||
@@ -273,6 +336,37 @@ build {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Wait for the "update_dyld_sim_shared_cache" process[1][2] to finish
|
||||||
|
# to avoid wasting CPU cycles after boot
|
||||||
|
#
|
||||||
|
# [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
|
# Compatibility with GitHub Actions Runner Images, where
|
||||||
# /usr/local/bin belongs to the default user. Also see [2].
|
# /usr/local/bin belongs to the default user. Also see [2].
|
||||||
#
|
#
|
||||||
@@ -284,17 +378,6 @@ build {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Wait for the "update_dyld_sim_shared_cache" process[1][2] to finish
|
|
||||||
# to avoid wasting CPU cycles after boot
|
|
||||||
#
|
|
||||||
# [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 = [
|
|
||||||
"sleep 1800"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
// Install setup-info-generator
|
// Install setup-info-generator
|
||||||
provisioner "shell" {
|
provisioner "shell" {
|
||||||
inline = [
|
inline = [
|
||||||
|
|||||||
Reference in New Issue
Block a user