[macOS] Add macOS 26 Intel; deprecate macOS 13 code#13634
[macOS] Add macOS 26 Intel; deprecate macOS 13 code#13634erik-bershel merged 2 commits intoactions:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request adds support for macOS 26 (Tahoe) Intel x64 runners and deprecates macOS 13 (Ventura) by removing all related code and configuration files. The changes enable building GitHub Actions runner images for the new macOS 26 x64 platform while cleaning up legacy support for the older macOS 13 version.
Changes:
- Added macOS 26 Intel x64 configuration to toolset-26.json including Xcode versions, development tools, and runtime environments
- Removed macOS 13 related files: toolset-13.json, macOS-13.anka.pkr.hcl template, and documentation files
- Updated helper scripts to replace Ventura OS detection with Tahoe detection functions
- Modified test files to remove PyPy and Mono tests specific to macOS 13, and updated vcpkg/Tcl-Tk test conditions
- Updated documentation (README.md, issue templates) to include macOS 26 Intel as a beta image option
- Cleaned up Parallels Desktop installation logic to exclude macOS 26 (removed from cask_packages)
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| images/macos/toolsets/toolset-26.json | Added x64 architecture configurations for Xcode, development tools, runtimes, and removed Parallels from cask packages |
| images/macos/toolsets/toolset-13.json | Deleted entire macOS 13 toolset configuration |
| images/macos/templates/macOS-26.anka.pkr.hcl | Updated to use toolset-26.json, changed image_os to macos26, removed macOS 13-specific scripts, modified provisioners |
| images/macos/templates/macOS-13.anka.pkr.hcl | Deleted entire macOS 13 Packer template |
| images/macos/scripts/tests/Toolcache.Tests.ps1 | Removed PyPy tests (only supported on macOS 13 x64) |
| images/macos/scripts/tests/Mono.Tests.ps1 | Updated condition to only run Mono tests on Sonoma (removed Ventura) |
| images/macos/scripts/tests/Common.Tests.ps1 | Removed skip condition for vcpkg tests (now supported on all versions) |
| images/macos/scripts/tests/BasicTools.Tests.ps1 | Updated Tcl/Tk test skip condition to use IsArm64 instead of OS-specific checks |
| images/macos/scripts/helpers/utils.sh | Added is_Tahoe, is_TahoeArm64, is_TahoeX64 functions; removed is_Ventura and related functions |
| images/macos/scripts/helpers/confirm-identified-developers-macos13.scpt | Deleted macOS 13-specific AppleScript |
| images/macos/scripts/helpers/Xcode.Installer.psm1 | Removed Ventura from Xcode license approval condition |
| images/macos/scripts/helpers/Xcode.Helpers.psm1 | Removed Get-BrokenXcodeSimulatorsList function with old Xcode simulator data |
| images/macos/scripts/helpers/Common.Helpers.psm1 | Removed IsVentura* properties; added IsTahoe, IsTahoeArm64, IsTahoeX64 properties |
| images/macos/scripts/docs-gen/SoftwareReport.Xcode.psm1 | Removed unused $os variable declaration |
| images/macos/scripts/docs-gen/SoftwareReport.Toolcache.psm1 | Removed PyPy-related functions and macOS 13 x64-specific logic |
| images/macos/scripts/docs-gen/Generate-SoftwareReport.ps1 | Updated OS version checks to include Tahoe and exclude Ventura; Parallels only for Sonoma/Sequoia x64 |
| images/macos/scripts/build/install-pypy.sh | Deleted entire PyPy installation script (not supported on macOS 26) |
| images/macos/scripts/build/install-common-utils.sh | Updated OS version checks for Tcl/Tk and Parallels to include TahoeX64 where appropriate and remove Ventura references |
| images/macos/scripts/build/configure-windows.sh | Updated comment grammar ("since Ventura" instead of "in Ventura") |
| images/macos/scripts/build/configure-tccdb-macos.sh | Simplified TCC database configuration to only use Sonoma+ format (removed Ventura-specific branches) |
| images/macos/scripts/build/configure-system.sh | Removed Ventura from Parallels uninstall condition |
| images/macos/scripts/build/Update-XcodeSimulators.ps1 | Removed call to Get-BrokenXcodeSimulatorsList function |
| images/macos/macos-26-Readme.md | Added comprehensive documentation for macOS 26 Intel runner image |
| images/macos/macos-13-arm64-Readme.md | Deleted macOS 13 ARM64 documentation |
| images/macos/macos-13-Readme.md | Deleted macOS 13 x64 documentation |
| README.md | Added macOS 26 x64 entry to available images table with beta badge |
| .github/ISSUE_TEMPLATE/tool-request.yml | Added macOS 26 checkbox option |
| .github/ISSUE_TEMPLATE/bug-report.yml | Added macOS 26 checkbox option |
| .github/ISSUE_TEMPLATE/announcement.yml | Added macOS 26 checkbox option |
Comments suppressed due to low confidence (1)
images/macos/scripts/build/install-pypy.sh:1
- The removed
install-pypy.shscript previously downloaded and installed PyPy toolchains by fetchingversions.jsonand tarballs fromhttps://downloads.python.org/pypy/and then executing the unpacked binaries, all without any checksum or signature verification and with versions chosen at build time from mutable metadata. This pattern meant that a compromise of the PyPy download infrastructure or a successful network-level attack on those HTTPS requests could inject arbitrary code into the image build process, leading to a supply chain compromise of all images built with this script. Keeping this script removed, or if reintroducing similar functionality, adding explicit integrity verification (e.g., pinned hashes or signatures) and pinning to immutable versions is necessary to avoid this class of supply chain risk.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1b30e70 to
8598326
Compare
|
Can OSS Projects/free users use this image or is there a cost associated?? |
|
@xavier2k6 https://docs.github.com/en/actions/concepts/runners/larger-runners But you can use |
|
Can OSS Projects/free users use this image or is there a cost associated?? It's a regular Larger Runner. OSS projects may use our codebase to build macOS self-hosted runners. |
Description
Related issue:
Check list