Infra: move iOS/Mac Catalyst sample CI jobs from macos-15 to macos-26

未關閉
#622 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

@adrianhall 已經在處理了。

開始於 2026年11月6日。

  • #626 來自 @adrianhall —— 未關閉

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
描述清楚
活躍度
停滯
技術堆疊
csharp, github, github-actions
領域
ci-cd

研究方向

Read the three named workflows: build-samples-todoapp-maui.yml, build-samples-todoapp-avalonia.yml, and build-samples-todoapp-uno.yml. Update their runner settings and explanatory comments, then dispatch build-samples.yml on a fork to check that the iOS and Mac Catalyst jobs acquire runners and pass. The issue also links open PR #626, so check its status before starting.

由索引模型根據 Issue 內容生成。

描述

Infrastructure

Summary

Move the macOS jobs in the sample build workflows from macos-15 to macos-26, and re-evaluate the iOS workload / Xcode pins that exist only because of macos-15.

Background

  • While validating #617 (PR #621), three jobs in the Build Samples workflow never started: todoapp-maui / ios, todoapp-avalonia / ios and todoapp-uno / ios-maccatalyst. GitHub reported The job was not acquired by Runner of type hosted even after multiple attempts, with the annotation Due to capacity constraints, jobs targeting macOS arm64 runners may experience longer queue times. A rerun of the failed jobs hit the same error. See run 42231478149.
  • The runner-images macOS directory lists macos-26 as the newest generally available image (macOS 26.6.2) and a separate xcode-27-arm64 image (macOS 27, Xcode 27 public preview).
  • Newer images are likely, but not guaranteed, to have more spare runner capacity than macos-15. GitHub does not publish pool sizes, so this needs to be confirmed empirically.

Why the current setup is constrained by macos-15

The three iOS jobs (build-samples-todoapp-maui.yml, build-samples-todoapp-avalonia.yml, build-samples-todoapp-uno.yml) all use runs-on: macos-15 and carry workarounds from #529 and #559:

  • WorkloadSetVersion: '10.0.107', pinned because newer sets (10.0.108+) need the iOS SDK 26.5 pack, which requires Xcode 26.5.
  • RequiredXcodeVersion: '26.3' plus a sudo xcode-select -s step, because the macos-15 default Xcode is 16.4 and its newest Xcode is 26.3.

The macos-26 image (20261026.0455.2) installs Xcode 26.0.1, 26.1.1, 26.2, 26.3, 26.4.1, 26.5 and 26.6 (default). Xcode 26.5 is the version that #529 and #559 found missing, so the workload-set pin may no longer be needed.

Proposed change

  1. Change runs-on: macos-15 to runs-on: macos-26 in the three workflows above.
  2. Update the explanatory comments, which currently refer to macos-latest migrating and to macos-15.
  3. Decide on the workload / Xcode strategy:
    • Minimal: keep WorkloadSetVersion: '10.0.107' and RequiredXcodeVersion: '26.3' (Xcode 26.3 is still installed on macos-26). This only changes the runner.
    • Follow-up: remove the 10.0.107 pin and select Xcode 26.5 or newer, so CI tracks the current .NET iOS SDK pack. Do this only if the iOS builds still pass.
  4. Dispatch build-samples.yml on the fork and confirm that the ios and ios-maccatalyst jobs start (acquire a runner) and pass.

Out of scope

  • Xcode 27 / the xcode-27-arm64 image. It is a public preview and is not yet a standard runs-on label. Revisit once it is generally available.
  • Linux and Windows runner changes (Ubuntu was handled in #612).

Acceptance criteria

  • No macos-15 references remain in .github/workflows/.
  • Build Samples passes on the fork, including the iOS and Mac Catalyst jobs.
  • Comments in the workflows accurately describe the runner and Xcode choices.

Risks

  • macos-26 may have its own capacity constraints; this is not known until tried.
  • The default Xcode, the OpenSSL default (3 to 4, see runner-images#14856) and tool versions differ from macos-15; the iOS builds should be re-verified.
主要語言
C#
星號
184
分支
48
平均合併
12 分鐘
30 天內合併 PR
21

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

CommunityToolkit/Datasync 的其他 Issue

查看 CommunityToolkit/Datasync 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。