Skip to content

Bump GitHub runners to Xcode 27 - #5665

Open
bgoncal wants to merge 7 commits into
mainfrom
feature/xcode-27-runners
Open

Bump GitHub runners to Xcode 27#5665
bgoncal wants to merge 7 commits into
mainfrom
feature/xcode-27-runners

Conversation

@bgoncal

@bgoncal bgoncal commented Sep 6, 2026

Copy link
Copy Markdown
Member

AI Policy

Select exactly one option that describes AI usage in this contribution:

  • I have not used AI for this contribution.
  • AI assistance was used for this contribution.
  • AI fully generated the code for this contribution, but I've reviewed and understood it before submitting and will respond without AI during review.

Summary

Moves every macOS job to the xcode-27 runner image, which ships Xcode 27 beta 6, and points DEVELOPER_DIR at Xcode_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.

Moves the macOS jobs to the `xcode-27` runner image and re-records the
snapshot references against the iOS 27 and watchOS 27 simulators.
Copilot AI lite review requested due to automatic review settings September 6, 2026 17:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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-27 runner image.
  • Updated DEVELOPER_DIR to point at /Applications/Xcode_27.0.app/Contents/Developer in 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.

Comment thread README.md Outdated
## 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

codecov Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 37.35%. Comparing base (6a75f78) to head (9e03742).
⚠️ Report is 11 commits behind head on main.

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     

see 182 files with indirect coverage changes

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Xcode 27 is a beta, so it is not on the App Store the link text named.
@bgoncal bgoncal added the iOS beta Issues that occur on iOS betas label Sep 7, 2026
@gbyo gbyo mentioned this pull request Sep 8, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed iOS beta Issues that occur on iOS betas

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants