Skip to content

Add Xcode 26 CI jobs and drop Xcode 15.2#163

Merged
bghgary merged 3 commits intoBabylonJS:mainfrom
bghgary:ci/xcode-26
Apr 17, 2026
Merged

Add Xcode 26 CI jobs and drop Xcode 15.2#163
bghgary merged 3 commits intoBabylonJS:mainfrom
bghgary:ci/xcode-26

Conversation

@bghgary
Copy link
Copy Markdown
Contributor

@bghgary bghgary commented Apr 17, 2026

[Created by Copilot on behalf of @bghgary]

Add CI coverage for Xcode 26 (macos-26 runner) and drop Xcode 15.2.

Changes

  • Added macOS_Xcode264 — builds + tests on macos-26 with Xcode 26.4.
  • Added macOS_Xcode264_Sanitizers — ASan/UBSan on macos-26 with Xcode 26.4.
  • Added macOS_Xcode264_ThreadSanitizer — TSan on macos-26 with Xcode 26.4.
  • Added iOS_Xcode264 — builds + tests on macos-26 with Xcode 26.4, iPhone 17 simulator.
  • Removed iOS_Xcode152 — the macos-14 runner and Xcode 15.2 are on their way to being retired; Xcode 16.4 (macos-latest) is our baseline and Xcode 26 now exercises the latest toolchain.

The Xcode 16.4 sanitizer jobs are retained alongside the new 26.4 sanitizer jobs. Major Xcode bumps have historically introduced sanitizer-runtime regressions (instrumentation gaps as the toolchain catches up to new system libraries), and TSan on arm64 is less battle-tested than on x86. Running both lets us catch regressions on the newer toolchain without losing coverage if Xcode 26 has sanitizer issues. Once Xcode 26 sanitizers have been stable for a while, the 16.4 sanitizer jobs can be dropped.

Mirrors the approach taken in BabylonJS/BabylonNative#1642. No source changes were needed — JsRuntimeHost has no iOS/macOS UI code (no UIScreen.mainScreen, connectedScenes, or statusBarOrientation usages), so the iOS 26 deprecations addressed in #1642 don't apply here.

Dropping Xcode 15.2

Xcode 15.2 coverage came from the macos-14 runner, which is being phased out on GitHub Actions. With macos-latest pinned to Xcode 16.4 and the new macos-26 job exercising Xcode 26.4, the 15.2 slot is redundant and unsupported.

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Add macOS_Xcode26 and iOS_Xcode26 jobs on the macos-26 runner with
Xcode 26.4 (iPhone 17 simulator for iOS). Remove iOS_Xcode152 which
ran on the soon-to-be-retired macos-14 runner.

Mirrors BabylonJS/BabylonNative#1642. No source changes needed —
JsRuntimeHost has no iOS UI code affected by the iOS 26 deprecations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 17, 2026 22:16
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 PR updates the CI workflow to add macOS and iOS coverage for Xcode 26 on the macos-26 GitHub Actions runner, while removing the older iOS Xcode 15.2 job as macos-14 is being retired.

Changes:

  • Add a new macOS_Xcode26 job using Xcode 26.4 on macos-26.
  • Replace the iOS_Xcode152 job with iOS_Xcode26 using Xcode 26.4 on macos-26 and an iPhone 17 simulator.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

bghgary and others added 2 commits April 17, 2026 15:24
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run sanitizers and thread sanitizer on Xcode 26.4 alongside the
existing 16.4 sanitizer jobs, so regressions on the newer toolchain
are caught without losing coverage on the current stable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bghgary bghgary enabled auto-merge (squash) April 17, 2026 23:19
@bghgary bghgary merged commit 5b3fb7c into BabylonJS:main Apr 17, 2026
21 checks passed
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.

3 participants