Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions .github/workflows/build-samples-todoapp-avalonia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,24 +86,25 @@ jobs:

ios:
# iOS builds require Xcode, which is only available on macOS runners.
# Pinned to macos-15 (rather than macos-latest) while that label migrates to macos-26
# (see https://github.com/actions/runner-images/issues/14167, rollout through
# 2026-07-15): macos-latest can currently land on either image at random, each with a
# different default Xcode (16.4 vs 26.4.1), and macos-15's *default* Xcode (16.4) doesn't
# match what any currently-published net10.0 iOS SDK pack requires (see WorkloadSetVersion
# below) - so this job also explicitly selects a non-default Xcode already installed on
# the image (see the "Select Xcode" step) to match. See
# https://github.com/CommunityToolkit/Datasync/issues/529. Revisit this whole job once we
# deliberately upgrade to a newer, Xcode-26-compatible workload set.
runs-on: macos-15
# Pinned to macos-26 (rather than macos-latest) so the Xcode toolchain doesn't change
# underneath us when the macos-latest label moves. macos-26 replaced the previous
# (older) macOS image because macOS arm64 jobs on that image repeatedly failed to acquire
# a runner due to capacity constraints (see
# https://github.com/CommunityToolkit/Datasync/issues/622). macos-26's default Xcode
# (26.6) is newer than what the pinned iOS SDK pack requires (see
# WorkloadSetVersion below), so this job explicitly selects an older Xcode that is
# already installed on the image (see the "Select Xcode" step) to match. See
# https://github.com/CommunityToolkit/Datasync/issues/529. Revisit this whole job
# once we deliberately drop the workload set pin and move to a newer Xcode.
runs-on: macos-26
env:
# `dotnet workload install ios` alone always resolves the newest published
# Microsoft.iOS.Sdk.net10.0_* pack. As of workload set 10.0.108, that's 26.5.10284,
# which requires Xcode 26.5 - not installed on macos-15 (even as a non-default Xcode).
# which requires Xcode 26.5 (installed on macos-26, but not the Xcode this job selects).
# Pinning to 10.0.107 (the last set before the iOS/MacCatalyst/macOS/tvOS manifest moved
# to the 26.4/26.5 pack line; see workload-set history for package id
# Microsoft.NET.Workloads.10.0.100 on nuget.org) resolves 26.2.10233 instead, which
# requires Xcode 26.3 - installed (non-default) on macos-15 as of image 20260629.0276.1
# requires Xcode 26.3 - installed (non-default) on macos-26 as of image 20261026.0455.2
# (see the "Select Xcode" step below). This also keeps other manifests (e.g. Android) at
# their latest versions. `--version` pins only this job's `dotnet workload install`
# invocation and the `restore`/`build` steps that follow it in the same runner - it's
Expand All @@ -118,7 +119,7 @@ jobs:
uses: actions/checkout@v7

- name: Select Xcode ${{ env.RequiredXcodeVersion }}
# macos-15 defaults to Xcode 16.4, which doesn't satisfy what the pinned iOS
# macos-26 defaults to Xcode 26.6, which doesn't match what the pinned iOS
# workload (see WorkloadSetVersion above) requires. Xcode 26.3 is already installed
# on the image, just not selected by default - so switch to it explicitly rather
# than installing anything extra.
Expand Down
27 changes: 14 additions & 13 deletions .github/workflows/build-samples-todoapp-maui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,25 @@ jobs:

ios:
# iOS builds require Xcode, which is only available on macOS runners.
# Pinned to macos-15 (rather than macos-latest) while that label migrates to macos-26
# (see https://github.com/actions/runner-images/issues/14167, rollout through
# 2026-07-15): macos-latest can currently land on either image at random, each with a
# different default Xcode (16.4 vs 26.4.1), and macos-15's *default* Xcode (16.4) doesn't
# match what any currently-published net10.0 iOS SDK pack requires (see WorkloadSetVersion
# below) - so this job also explicitly selects a non-default Xcode already installed on
# the image (see the "Select Xcode" step) to match. See
# https://github.com/CommunityToolkit/Datasync/issues/529. Revisit this whole job once we
# deliberately upgrade to a newer, Xcode-26-compatible workload set.
runs-on: macos-15
# Pinned to macos-26 (rather than macos-latest) so the Xcode toolchain doesn't change
# underneath us when the macos-latest label moves. macos-26 replaced the previous
# (older) macOS image because macOS arm64 jobs on that image repeatedly failed to acquire
# a runner due to capacity constraints (see
# https://github.com/CommunityToolkit/Datasync/issues/622). macos-26's default Xcode
# (26.6) is newer than what the pinned iOS SDK pack requires (see
# WorkloadSetVersion below), so this job explicitly selects an older Xcode that is
# already installed on the image (see the "Select Xcode" step) to match. See
# https://github.com/CommunityToolkit/Datasync/issues/529. Revisit this whole job
# once we deliberately drop the workload set pin and move to a newer Xcode.
runs-on: macos-26
env:
# `dotnet workload install maui-ios` alone always resolves the newest published
# Microsoft.iOS.Sdk.net10.0_* pack. As of workload set 10.0.108, that's 26.5.10284,
# which requires Xcode 26.5 - not installed on macos-15 (even as a non-default Xcode).
# which requires Xcode 26.5 (installed on macos-26, but not the Xcode this job selects).
# Pinning to 10.0.107 (the last set before the iOS/MacCatalyst/macOS/tvOS manifest moved
# to the 26.4/26.5 pack line; see workload-set history for package id
# Microsoft.NET.Workloads.10.0.100 on nuget.org) resolves 26.2.10233 instead, which
# requires Xcode 26.3 - installed (non-default) on macos-15 as of image 20260629.0276.1
# requires Xcode 26.3 - installed (non-default) on macos-26 as of image 20261026.0455.2
# (see the "Select Xcode" step below). This also keeps other manifests (e.g. MAUI,
# Android) at their latest versions. `--version` pins only this job's
# `dotnet workload install` invocation and the `restore`/`build` steps that follow it in
Expand All @@ -89,7 +90,7 @@ jobs:
uses: actions/checkout@v7

- name: Select Xcode ${{ env.RequiredXcodeVersion }}
# macos-15 defaults to Xcode 16.4, which doesn't satisfy what the pinned iOS
# macos-26 defaults to Xcode 26.6, which doesn't match what the pinned iOS
# workload (see WorkloadSetVersion above) requires. Xcode 26.3 is already installed
# on the image, just not selected by default - so switch to it explicitly rather
# than installing anything extra.
Expand Down
25 changes: 13 additions & 12 deletions .github/workflows/build-samples-todoapp-uno.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,24 +58,25 @@ jobs:

ios-maccatalyst:
# iOS and Mac Catalyst builds both require Xcode, which is only available on macOS runners.
# Pinned to macos-15 (rather than macos-latest) while that label migrates to macos-26
# (see https://github.com/actions/runner-images/issues/14167, rollout through
# 2026-07-15): macos-latest can currently land on either image at random, each with a
# different default Xcode (16.4 vs 26.4.1), and macos-15's *default* Xcode (16.4) doesn't
# match what any currently-published net10.0 iOS SDK pack requires (see WorkloadSetVersion
# below) - so this job also explicitly selects a non-default Xcode already installed on
# the image (see the "Select Xcode" step) to match. See
# Pinned to macos-26 (rather than macos-latest) so the Xcode toolchain doesn't change
# underneath us when the macos-latest label moves. macos-26 replaced the previous
# (older) macOS image because macOS arm64 jobs on that image repeatedly failed to acquire
# a runner due to capacity constraints (see
# https://github.com/CommunityToolkit/Datasync/issues/622). macos-26's default Xcode
# (26.6) is newer than what the pinned iOS SDK pack requires (see
# WorkloadSetVersion below), so this job explicitly selects an older Xcode that is
# already installed on the image (see the "Select Xcode" step) to match. See
# https://github.com/CommunityToolkit/Datasync/issues/529 and #559. Revisit this whole job
# once we deliberately upgrade to a newer, Xcode-26-compatible workload set.
runs-on: macos-15
# once we deliberately drop the workload set pin and move to a newer Xcode.
runs-on: macos-26
env:
# `dotnet workload install ios maccatalyst` alone always resolves the newest published
# Microsoft.iOS.Sdk.net10.0_* pack. As of workload set 10.0.108, that's 26.5.10284,
# which requires Xcode 26.5 - not installed on macos-15 (even as a non-default Xcode).
# which requires Xcode 26.5 (installed on macos-26, but not the Xcode this job selects).
# Pinning to 10.0.107 (the last set before the iOS/MacCatalyst/macOS/tvOS manifest moved
# to the 26.4/26.5 pack line; see workload-set history for package id
# Microsoft.NET.Workloads.10.0.100 on nuget.org) resolves 26.2.10233 instead, which
# requires Xcode 26.3 - installed (non-default) on macos-15 as of image 20260629.0276.1
# requires Xcode 26.3 - installed (non-default) on macos-26 as of image 20261026.0455.2
# (see the "Select Xcode" step below). `--version` pins only this job's
# `dotnet workload install` invocation and the `restore`/`build` steps that follow it in
# the same runner - it's intentionally not a repo-wide global.json pin, which would
Expand All @@ -89,7 +90,7 @@ jobs:
uses: actions/checkout@v7

- name: Select Xcode ${{ env.RequiredXcodeVersion }}
# macos-15 defaults to Xcode 16.4, which doesn't satisfy what the pinned iOS/Mac
# macos-26 defaults to Xcode 26.6, which doesn't match what the pinned iOS/Mac
# Catalyst workload (see WorkloadSetVersion above) requires. Xcode 26.3 is already
# installed on the image, just not selected by default - so switch to it explicitly
# rather than installing anything extra.
Expand Down
Loading