diff --git a/.github/workflows/monthly.yml b/.github/workflows/monthly.yml index 5881863..dc5dcb5 100644 --- a/.github/workflows/monthly.yml +++ b/.github/workflows/monthly.yml @@ -58,6 +58,8 @@ jobs: max-parallel: 1 matrix: include: + - macos_version: golden-gate + disable_sip_template: disable-sip-with-username.pkr.hcl - macos_version: sonoma disable_sip_template: disable-sip.pkr.hcl - macos_version: sequoia @@ -162,6 +164,10 @@ jobs: xcode_version: "15.4" xcode_components: "" latest: false + - macos_version: golden-gate + xcode_version: "27" + xcode_components: '"MetalToolchain"' + latest: true env: MACOS_VERSION: ${{ matrix.macos_version }} XCODE_COMPONENTS: ${{ matrix.xcode_components }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7588801..92356be 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,7 +37,7 @@ jobs: # Xcode 27 requires macOS Tahoe 26.6 or later. macos_version: >- ${{ startsWith(github.event.release.tag_name || inputs.xcode_version, '27') - && fromJSON('["tahoe"]') + && fromJSON('["tahoe", "golden-gate"]') || fromJSON('["tahoe", "sequoia"]') }} env: MACOS_VERSION: ${{ matrix.macos_version }} @@ -100,6 +100,12 @@ jobs: max-parallel: 1 matrix: include: + - macos_version: golden-gate + xcode_versions: '"27"' + additional_ios_builds: "" + additional_tvos_builds: "" + xcode_components: '"MetalToolchain"' + disk_size: 240 - 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" diff --git a/.github/workflows/template-validation.yml b/.github/workflows/template-validation.yml index aca297a..7500692 100644 --- a/.github/workflows/template-validation.yml +++ b/.github/workflows/template-validation.yml @@ -79,6 +79,12 @@ jobs: validate "$template" done + validate templates/xcode.pkr.hcl \ + -var macos_version=golden-gate \ + -var 'xcode_version=["27"]' \ + -var 'xcode_components=["MetalToolchain"]' \ + -var expected_runtimes_file=data/expected.golden-gate.runtimes.txt + validate templates/base.pkr.hcl \ -var vm_name=template-validation-base @@ -269,6 +275,12 @@ jobs: additional_tvos_builds: "17.5" xcode_components: '"MetalToolchain"' disk_size: 380 + - macos_version: golden-gate + xcode_versions: '"27"' + additional_ios_builds: "" + additional_tvos_builds: "" + xcode_components: '"MetalToolchain"' + disk_size: 240 env: ADDITIONAL_IOS_BUILDS: ${{ matrix.additional_ios_builds }} ADDITIONAL_TVOS_BUILDS: ${{ matrix.additional_tvos_builds }} diff --git a/README.md b/README.md index 6a12165..96e3f07 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ The following image variants are currently available: * `macos-{golden-gate,tahoe,sequoia,sonoma}-vanilla` — a vanilla macOS installation with helpful tweaks such as auto-login, but no additional software preinstalled * `macos-{golden-gate,tahoe,sequoia,sonoma}-base` — based on `macos-{golden-gate,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-{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. +* `macos-{golden-gate,tahoe,sequoia,sonoma}-xcode:N` — based on `macos-{golden-gate,tahoe,sequoia,sonoma}-base` image and has `Xcode N` with [`Flutter`](https://flutter.dev/) pre-installed +* `macos-runner:{golden-gate,tahoe,sequoia,sonoma}` — a variant of `xcode:N` with one or more 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-). @@ -44,7 +44,7 @@ on the host, guest, and workload. ## 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-{tahoe,sequoia}-xcode:N`. This generally happens the next weekend after a release. +a new version of the `macos-{golden-gate,tahoe,sequoia}-xcode:N` images on supported macOS versions. This generally happens the next weekend after a release. Please watch this repository releases to get notified about new images. ## Update Cadence diff --git a/data/expected.golden-gate.runtimes.txt b/data/expected.golden-gate.runtimes.txt new file mode 100644 index 0000000..0743132 --- /dev/null +++ b/data/expected.golden-gate.runtimes.txt @@ -0,0 +1,5 @@ +== Runtimes == +iOS 27.0 (27.0 - 24A434) - com.apple.CoreSimulator.SimRuntime.iOS-27-0 +tvOS 27.0 (27.0 - 24J360) - com.apple.CoreSimulator.SimRuntime.tvOS-27-0 +watchOS 27.0 (27.0 - 24R362) - com.apple.CoreSimulator.SimRuntime.watchOS-27-0 +visionOS 27.0 (27.0 - 24M362) - com.apple.CoreSimulator.SimRuntime.xrOS-27-0 diff --git a/templates/vanilla-golden-gate.pkr.hcl b/templates/vanilla-golden-gate.pkr.hcl index 962ccac..7c3d002 100644 --- a/templates/vanilla-golden-gate.pkr.hcl +++ b/templates/vanilla-golden-gate.pkr.hcl @@ -12,7 +12,7 @@ packer { } source "tart-cli" "tart" { - from_ipsw = "https://updates.cdn-apple.com/2026SummerSeed/7b1c2bd9-7617-426d-92e5-ef204407ffaa/UniversalMac_27.0_26A5416b_Restore.ipsw" + from_ipsw = "https://updates.cdn-apple.com/2026FallFCS/afcfc88e-bbe6-44bf-a5da-07c56eebc06c/UniversalMac_27.0_26A428_Restore.ipsw" vm_name = "golden-gate-vanilla" cpu_count = 4 memory_gb = 8