Skip to content

[macOS] Add macOS 26 Intel; deprecate macOS 13 code#13634

Merged
erik-bershel merged 2 commits intoactions:mainfrom
github-maccloud:add-macos-26-intel
Feb 6, 2026
Merged

[macOS] Add macOS 26 Intel; deprecate macOS 13 code#13634
erik-bershel merged 2 commits intoactions:mainfrom
github-maccloud:add-macos-26-intel

Conversation

@erik-bershel
Copy link
Copy Markdown
Contributor

Description

  • Deprecate macOS-13 related code
  • Add macOS-26 Intel code
  • Update related docs

Related issue:

Check list

  • Related issue / work item is attached
  • Tests are written (if applicable)
  • Documentation is updated (if applicable)
  • Changes are tested and related VM images are successfully generated

Copilot AI review requested due to automatic review settings February 5, 2026 14:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.sh script previously downloaded and installed PyPy toolchains by fetching versions.json and tarballs from https://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.

erik-bershel and others added 2 commits February 6, 2026 11:03
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@erik-bershel erik-bershel merged commit 087bdcd into actions:main Feb 6, 2026
4 checks passed
@erik-bershel erik-bershel deleted the add-macos-26-intel branch February 6, 2026 10:24
@xavier2k6
Copy link
Copy Markdown
Contributor

Can OSS Projects/free users use this image or is there a cost associated??

@hugovk
Copy link
Copy Markdown
Contributor

hugovk commented Feb 6, 2026

@xavier2k6 macos-large (x64) and macos-xlarge (arm64) are paid things:

https://docs.github.com/en/actions/concepts/runners/larger-runners

But you can use macos-26 (arm64) for free projects:

https://github.com/actions/runner-images#available-images

@xavier2k6
Copy link
Copy Markdown
Contributor

@hugovk #13637 which was created a few minutes ago seems to state "free for all"

@erik-bershel
Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants