Repository navigation
Add a pull request build for the site and every platform - #20
Merged
Merged
Conversation
PR build (pr-build.yml) runs on pull requests to vnext and main and deploys nothing. It calls the build job of build-and-deploy.yml as a reusable workflow, so a PR is checked with the same AOT publish and site validation that deploys, and its dispatch job is skipped. A matrix then builds the samples browser for android and desktop, and three samples (plus up to five the PR changes) for android, desktop, browserwasm, ios and maccatalyst. The target framework is read from SamplesBrowser.csproj, so the matrix follows a framework change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The first run showed that the standalone samples list ios and maccatalyst but cannot build them: they have no Platforms/iOS or Platforms/MacCatalyst files (Info.plist is missing). The workflow comment says what to add before putting those platforms back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The samples (and scripts/uno-template, which port-to-uno.ps1 copies) listed net*-ios and net*-maccatalyst but had no Platforms/iOS or Platforms/MacCatalyst folder, so those heads could not build (Uno.Sdk looked for iOS/Info.plist). Each project now has Info.plist, Entitlements.plist and an entry point for both, from Uno.Templates 6.7.45 (iOS) and 5.6.54 (Mac Catalyst, which the 6.x templates no longer scaffold), both started with UnoPlatformHostBuilder.UseAppleUIKit(). The PR build matrix builds ios and maccatalyst again on macos-15. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The iOS files work: the samples build for net9.0-ios and net10.0-ios on macos-15. Mac Catalyst does not link on either version: Uno.WinUI.Runtime.Skia.AppleUIKit 6.7 depends on Uno.icu-ios, which ships only iOS device and simulator libraries. That is not something files in this repository can fix, so the Mac Catalyst files are removed again and the matrix leaves maccatalyst out, with the reason next to it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The WebAssembly build no longer calls build-and-deploy.yml (which brought its skipped dispatch job, the AOT publish, the site validation and an artifact). Every platform, browserwasm included, now runs the same Debug build of the samples browser (where it targets that platform) and the samples, with build compression disabled (DisableBuildCompression). The two tool checks run in their own job. build-and-deploy.yml is back to its vnext version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Pull requests had no CI.
build-and-deploy.ymlruns only on pushes to vnext and main, so a PR that breaks the build is found only after it's merged. This adds PR build (pr-build.yml), which runs on pull requests to vnext and main. It also adds the iOS platform files the samples were missing, so that iOS can be built.What it runs
DisableBuildCompression=trueskips the.br/.gzcopies), no artifact, no deployment and no secrets.SamplesBrowser.csproj, so a framework change such as Move to .NET 10 (LTS), keeping Uno.Sdk 6.7.45 #18 moves the builds with it. It also picks the Xcode version for that framework and lists the samples.What only the deploy build covers, after a merge to vnext or main:
A PR that breaks one of those shows up in the vnext build after it's merged, which then doesn't deploy.
iOS platform files
The samples target
net*-ios, but they had noPlatforms/iOSfolder, so iOS never built: Uno.Sdk looked foriOS/Info.plist. Each of the 331 samples andscripts/uno-template(whichport-to-uno.ps1copies into new samples) now has:Info.plist,Entitlements.plistandMain.iOS.cs, taken from Uno.Templates 6.7.45. The entry point starts the app withUnoPlatformHostBuilder…UseAppleUIKit(), as Uno 6 apps do, and calls the samples'App.InitializeLogging().UIRequiredDeviceCapabilitieslists onlyarm64, since .NET for iOS is 64-bit only.PrivacyInfo.xcprivacy(only needed for App Store submission, and the template's copy isn't a well-formed privacy manifest) and no launch-image catalog (it names no images; the splash comes fromAssets/Splash/splash_screen.svg).Mac Catalyst can't be built yet
The samples also target
net*-maccatalyst, but that can't link with Uno 6.7's Skia renderer:Uno.WinUI.Runtime.Skia.AppleUIKit6.7.359, depends onUno.icu-ios, for Mac Catalyst too. That package (77.3.2, and 77.4.1 as well) ships only iOS device and simulator libraries.ld: building for 'macCatalyst', but linking in object file (…/uno.icu-ios/77.3.2/…/libicuuc.a) built for 'iOS', on .NET 9 (an earlier run of this PR) and on .NET 10 (temporary draft [Temporary, do not merge] PR build on .NET 10 #22, now closed).So the matrix leaves Mac Catalyst out, and the workflow comment says why. Files in this repository can't fix it. The options are to drop
net*-maccatalystfrom the samples' target frameworks (on macOS they run through the desktop target), or to keep it and ask Uno for a Mac Catalyst ICU build.Notes
build-and-deploy.ymlis unchanged.Results
Run 43006310901 on this PR (.NET 9) passed, with no artifact. It took about 14 minutes in all, since the jobs run in parallel.
On .NET 10, temporary draft #22 (#18 combined with an earlier version of this workflow) built every platform except Mac Catalyst.
🤖 Generated with Claude Code