Bump GitHub runners to Xcode 27 - #5665
Conversation
Moves the macOS jobs to the `xcode-27` runner image and re-records the snapshot references against the iOS 27 and watchOS 27 simulators.
There was a problem hiding this comment.
🟡 Changes recommended
The updated README line contains a misleading download-source reference (“App Store”) that doesn’t match the linked Apple Developer Downloads page.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates the project’s documented toolchain and GitHub Actions macOS execution environment to Xcode 27, aligning CI (and related automation workflows) with the new runner image and Xcode install path.
Changes:
- Switched macOS GitHub Actions jobs to run on the
xcode-27runner image. - Updated
DEVELOPER_DIRto point at/Applications/Xcode_27.0.app/Contents/Developerin workflows that build/test with Xcode. - Bumped documented minimum Xcode version to 27.0+ in contributor docs and agent skill docs.
File summaries
| File | Description |
|---|---|
| README.md | Updates contributor “Getting Started” minimum Xcode version to 27.0+. |
| AGENTS.md | Updates documented build-system minimum Xcode version to 27.0+. |
| .github/workflows/update_material_design_icons.yml | Runs the icon update automation on xcode-27. |
| .github/workflows/e2e.yml | Updates DEVELOPER_DIR and runner image to Xcode 27. |
| .github/workflows/download_localized_strings.yml | Runs Lokalise string sync automation on xcode-27. |
| .github/workflows/distribute.yml | Updates DEVELOPER_DIR and runner image to Xcode 27 for distribution builds. |
| .github/workflows/delete_lokalise_keys.yml | Runs cleanup PR automation on xcode-27. |
| .github/workflows/ci.yml | Updates DEVELOPER_DIR and runs the test job on xcode-27. |
| .agents/skills/ha-ios-architecture/SKILL.md | Updates documented build-system minimum Xcode version to 27.0+. |
Review details
- Files reviewed: 9/815 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| ## Getting Started | ||
|
|
||
| Home Assistant uses Bundler, Homebrew, and SPM to manage build dependencies. You'll need Xcode 26.4 (or later) which you can download from the [App Store](https://developer.apple.com/download/). You can get the app running using the following commands: | ||
| Home Assistant uses Bundler, Homebrew, and SPM to manage build dependencies. You'll need Xcode 27.0 (or later) which you can download from the [App Store](https://developer.apple.com/download/). You can get the app running using the following commands: |
The test and e2e lanes run with package resolution disabled, which relies on the packages already being checked out. A cold DerivedData cache has none, so resolve them from the pinned versions first.
The lane writes its result bundle to fastlane/test_output, which none of the uploaded paths covered, so a snapshot failure on CI arrived with no diff images to look at.
The bubble is drawn as red Liquid Glass and captured through the render server, which resolves it differently on the CI runner: 0.949 of pixels matched there against the 0.96 the rest of the suite holds to.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5665 +/- ##
==========================================
+ Coverage 36.12% 37.35% +1.23%
==========================================
Files 1060 1064 +4
Lines 74870 73885 -985
==========================================
+ Hits 27050 27603 +553
+ Misses 47820 46282 -1538 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Xcode 27 is a beta, so it is not on the App Store the link text named.
AI Policy
Select exactly one option that describes AI usage in this contribution:
Summary
Moves every macOS job to the
xcode-27runner image, which ships Xcode 27 beta 6, and pointsDEVELOPER_DIRatXcode_27.0.app.The new image only has iOS 27 and watchOS 27 simulators, so the snapshot references were re-recorded against them. 806 of 875 images changed.
Screenshots
Link to pull request in Documentation repository
Documentation: home-assistant/companion.home-assistant#
Any other notes
The image is still marked as a preview by GitHub, so runner capacity may be tight for a while.