Skip to content

CI: build the sample on the net8 and net10 extremes as a matrix - #7

Merged
sbokatuk merged 2 commits into
mainfrom
ci-sample-matrix
Jul 26, 2026
Merged

CI: build the sample on the net8 and net10 extremes as a matrix#7
sbokatuk merged 2 commits into
mainfrom
ci-sample-matrix

Conversation

@sbokatuk

Copy link
Copy Markdown
Owner

The sample built net8+net9 in Debug and deliberately skipped net10, so the newest asset set went unbuilt and Release AOT/trimmer link issues went unseen. It now selects one framework per SDK band via SampleSdkBand (net9 by default, so local dotnet build still works), and a build-samples matrix builds the net8 and net10 extremes in Release, each on its own band through a scratch global.json, fail-fast off, pinned to the simulator RID.

Release iOS AOT is slow - the trimmer and LLVM statically link ~150 MB of FFmpeg per framework - so the two legs run concurrently under a generous timeout, well clear of the 48-minute kill an earlier single-job attempt hit.

CommunityToolkit.Maui.MediaElement (the video preview) has no version spanning net8 and net10, so it and Microsoft.Extensions.Logging.Debug are now selected per band: 4.1.2/8.0.1 for net8 and net9, 10.0.0/10.0.0 for net10. Verified: the net9 band builds clean; the net10 versions are confirmed on nuget.org with the net10.0-ios26.0 assets, and their Release build runs in the matrix.

sbokatuk and others added 2 commits July 26, 2026 01:05
The sample built net8+net9 in Debug and deliberately skipped net10, so the
newest asset set went unbuilt and Release AOT/trimmer link issues went
unseen. It now selects one framework per SDK band via SampleSdkBand (net9 by
default, so local `dotnet build` still works), and a build-samples matrix
builds the net8 and net10 extremes in Release, each on its own band through a
scratch global.json, fail-fast off, pinned to the simulator RID.

Release iOS AOT is slow - the trimmer and LLVM statically link ~150 MB of
FFmpeg per framework - so the two legs run concurrently under a generous
timeout, well clear of the 48-minute kill an earlier single-job attempt hit.

CommunityToolkit.Maui.MediaElement (the video preview) has no version
spanning net8 and net10, so it and Microsoft.Extensions.Logging.Debug are now
selected per band: 4.1.2/8.0.1 for net8 and net9, 10.0.0/10.0.0 for net10.
Verified: the net9 band builds clean; the net10 versions are confirmed on
nuget.org with the net10.0-ios26.0 assets, and their Release build runs in the
matrix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore failed with NU1605: Microsoft.Maui.Controls came from $(MauiVersion), which
is whatever the installed workload bundles - 10.0.20 on the net10 runner image -
while CommunityToolkit.Maui.MediaElement 10.0.0 declares a 10.0.60 floor. Controls
is an ordinary NuGet package independent of the workload pack, so pin the toolkit's
floor on the net10 band; net8 and net9 keep the workload's own version.

Compilation then failed with CS7036: MediaElement 10.0.0 made
isAndroidForegroundServiceEnabled a required argument of
UseMauiCommunityToolkitMediaElement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sbokatuk
sbokatuk merged commit cac3863 into main Jul 26, 2026
7 checks passed
@sbokatuk
sbokatuk deleted the ci-sample-matrix branch July 26, 2026 19:47
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.

1 participant