ci: add build-samples workflow for Phase 3 mobile heads (#511)#519
Merged
Conversation
added 2 commits
July 7, 2026 13:39
…lkit#511) Adds CI coverage for the Android/iOS/Uno mobile build heads deferred from Phase 1 (CommunityToolkit#509/CommunityToolkit#512) and Phase 2 (CommunityToolkit#510/CommunityToolkit#514): - build-samples-todoapp-avalonia.yml: add android (ubuntu-latest) and ios (macos-latest) jobs for TodoApp.Avalonia.Android/.iOS. - build-samples-todoapp-maui.yml (new): android and ios jobs for TodoApp.MAUI, each scoped to a single TargetFramework via -p:TargetFramework / -f (the Windows head remains in build-samples-todoapp-windows.yml from Phase 2). - build-samples-todoapp-uno.yml (new): one job per TodoApp.Uno head (android, ios+maccatalyst, windows, browserwasm, desktop), each restoring/building the single multi-TFM project scoped to one TargetFramework at a time. - build-samples.yml: wire the two new sample workflows into the orchestrator and the all-samples-built gate. The desktop head is intentionally NOT marked continue-on-error here. CommunityToolkit#506's NU1903 (Tmds.DBus) finding is a NuGet audit warning only and this repo does not configure NuGet audit to fail builds. CommunityToolkit#506 also reports a NU1605 hit while investigating that warning, but that has not been confirmed to reproduce today or to be desktop-specific (CommunityToolkit.WinUI.Behaviors is referenced unconditionally in TodoApp.Uno.csproj), so all Uno heads are left as normal, blocking jobs pending real CI signal. actionlint passes on all 5 changed/new workflow files. Verified 'dotnet restore/build Datasync.Toolkit.sln --configuration Release' still succeeds with 0 warnings/errors (no regression to the core library). The mobile/Uno workload installs and builds themselves cannot be verified locally (no Android SDK, no full Xcode, no Windows) and will be confirmed once CI runs on this branch.
…n for TodoApp.Avalonia.iOS CI (added in CommunityToolkit#511) surfaced a pre-existing mismatch: Info.plist declared MinimumOSVersion 13.0 while TodoApp.Avalonia.iOS.csproj declares SupportedOSPlatformVersion 15.0, which the iOS build task hard-fails on ('The MinimumOSVersion value in the Info.plist (13.0) does not match the SupportedOSPlatformVersion value (15.0) in the project file'). Bump Info.plist's MinimumOSVersion to 15.0 to match the csproj, which is treated as the source of truth here. Unrelated to this fix: the same CI run also surfaced a pre-existing CS8604 nullable-reference warning in the shared LoggingHandler.cs. It does not fail the build (the run reported 1 warning, 1 error - only the Info.plist mismatch was the error) and is left untouched to keep this change scoped to the actual build failure.
This was referenced Jul 7, 2026
CI confirmed the NU1605 (Uno.WinUI 5.5.87 vs 5.4.22, driven by CommunityToolkit.WinUI.Behaviors' floor vs. the Uno.Sdk pin in global.json) is not desktop-specific as originally suspected in CommunityToolkit#511 - it fails restore for every TodoApp.Uno head (confirmed via the android-head CI log and locally reproduced on net10.0-desktop, no workload required), since CommunityToolkit.WinUI.Behaviors is referenced unconditionally in TodoApp.Uno.csproj. Comment out the todoapp-uno job in build-samples.yml's orchestrator (and drop it from all-samples-built's needs) rather than trying to patch around it here. build-samples-todoapp-uno.yml itself is left fully intact (one job per head, TFM-scoped restore/build) and just needs to be wired back in once CommunityToolkit#506 lands a fix and TodoApp.Uno.csproj restores cleanly. Posted the concrete reproduction details to CommunityToolkit#506 so the fix for that issue also covers re-enabling this CI job.
This was referenced Jul 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #511 (Phase 3 of the samples CI rollout, follow-up to #509 / #510).
Adds CI coverage for the mobile build heads (Android/iOS/Uno) deferred from Phase 1 (#509, merged in #512) and Phase 2 (#510, merged in #514).
Scope
TodoApp.Avalonia.Android.csprojnet10.0-androidubuntu-latest,androidworkloadTodoApp.Avalonia.iOS.csprojnet10.0-iosmacos-latest,iosworkloadTodoApp.MAUI.csprojnet10.0-androidubuntu-latest,maui-androidworkloadTodoApp.MAUI.csprojnet10.0-iosmacos-latest,maui-iosworkloadTodoApp.Uno.csprojnet10.0-androidubuntu-latest,androidworkloadTodoApp.Uno.csprojnet10.0-ios/net10.0-maccatalystmacos-latest,ios+maccatalystworkloadsTodoApp.Uno.csprojnet10.0-windows10.0.26100windows-latestTodoApp.Uno.csprojnet10.0-browserwasmubuntu-latest,wasm-toolsworkloadTodoApp.Uno.csprojnet10.0-desktopubuntu-latestBuild-only (
dotnet restore+dotnet build), consistent with Phases 1 and 2.Changes
build-samples-todoapp-avalonia.yml— renamed the existing jobbuild→desktop; addedandroid(ubuntu-latest) andios(macos-latest) jobs for the Android/iOS heads. Removed the now-resolved comment deferring these to Add CI workflow to build mobile /samples heads: Android, iOS, Uno (Phase 3 of #509) #511.build-samples-todoapp-maui.yml—androidandiosjobs forTodoApp.MAUI.csproj. Since the project has multiple TFMs (net10.0-android;net10.0-ios, plus a Windows TFM conditionally appended on Windows), each job scopes restore/build to a single TargetFramework via-p:TargetFramework(restore) /-f(build), mirroring the pattern already used for the MAUI-Windows head in ci: add build-samples workflow for Phase 2 Windows-only heads (#510) #514. The Windows head remains inbuild-samples-todoapp-windows.yml, unchanged.build-samples-todoapp-uno.yml—TodoApp.Uno.csprojis a single Uno.Sdk project with a multi-headTargetFrameworkslist (net10.0-android;net10.0-ios;net10.0-maccatalyst;net10.0-windows10.0.26100;net10.0-browserwasm;net10.0-desktop). No single runner can build every head, so each job restores/builds one head at a time via the same TFM-scoping pattern:android(ubuntu),ios-maccatalyst(macos, one job installs both workloads and builds both heads sequentially),windows(windows-latest),browserwasm(ubuntu,wasm-tools),desktop(ubuntu).build-samples.yml— wiredtodoapp-mauiandtodoapp-unointo the orchestrator and theall-samples-builtgate job; cleaned up the resolved Phase 3 comment.build-samples-todoapp-windows.yml— updated a comment to point at the newbuild-samples-todoapp-maui.ymlinstead of Add CI workflow to build mobile /samples heads: Android, iOS, Uno (Phase 3 of #509) #511 (now resolved).A note on the Uno
desktophead and #506#511 suggested
continue-on-error: true(or excluding entirely) for the Unodesktophead, citing a pre-existingNU1605mentioned in #506. I did not apply that here, deliberately:NU1903,Tmds.DBus). This repo does not configure NuGet audit to fail builds anywhere (noNuGetAuditMode/WarningsAsErrorsoverrides found in anyDirectory.Build.props/Directory.Packages.props), so that finding alone cannot faildotnet restore/buildregardless of head.NU1605(package downgrade, a genuine restore error if it reproduces) while investigating the warning above. However: (a) Investigate resolving NU1903 for Tmds.DBus in Uno desktop sample #506 is still open/unresolved, so this isn't confirmed to still reproduce; and (b) the implicated package (CommunityToolkit.WinUI.Behaviors) is referenced unconditionally inTodoApp.Uno.csproj, not scoped to the desktop TFM, so if this conflict is real it isn't necessarily desktop-specific.All five Uno jobs are left as normal, blocking jobs pending real CI signal from this PR. If any job fails with the NU1605 described in #506, I'll add
continue-on-errorto just that job and report back to #506 with the concrete reproduction, rather than speculatively excluding a head that may build fine.Verification
actionlintpasses on all 5 changed/new workflow files.dotnet restore Datasync.Toolkit.sln && dotnet build Datasync.Toolkit.sln --configuration Release --no-restoresucceeds with 0 warnings/errors (confirms no regression to the core library build).Related
Tmds.DBusNU1903 investigation; still open, discussed above.shellcheck/actionlintcleanup found incidentally while verifying this PR's workflow files; filed independently to keep this PR scoped to samples CI.