Skip to content
Merged
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
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-datasync-server-cosmosdb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
SolutionFile: 'samples/datasync-server-cosmosdb-singlecontainer/Datasync.Server.CosmosDb.SingleContainer.sln'

permissions:
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-datasync-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
SolutionFile: 'samples/datasync-server/Sample.Datasync.Server.sln'

permissions:
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/build-samples-todoapp-avalonia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,15 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release triggers the real ILLink trimmer (not just the trim analyzer) on the iOS head even
# for a plain `dotnet build` of a simulator RID - "Optimizing assemblies for
# size"/"IL stripping assemblies" dominated ~90% of that job's build time (15+ minutes).
# Debug avoids that IL trimming/AOT machinery entirely (see
# https://blog.verslu.is/maui/exclude-assemblies-from-trimming/ and
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug for consistency, even on heads where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
# NOTE: This sample's solution (TodoApp.Avalonia.sln) also contains Android and iOS heads
# (net10.0-android / net10.0-ios). Only the shared and Desktop (net10.0) projects are built
# directly here, not the full .sln - the Android and iOS heads are built by their own jobs
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-todoapp-blazor-wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
SolutionFile: 'samples/todoapp-blazor-wasm/TodoApp.BlazorWasm.sln'

permissions:
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/build-samples-todoapp-maui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,15 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release triggers the real ILLink trimmer (not just the trim analyzer) on the iOS head even
# for a plain `dotnet build` of a simulator RID - "Optimizing assemblies for
# size"/"IL stripping assemblies" dominated ~90% of that job's build time (15+ minutes).
# Debug avoids that IL trimming/AOT machinery entirely (see
# https://blog.verslu.is/maui/exclude-assemblies-from-trimming/ and
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug for consistency, even on heads where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
# TodoApp.MAUI.csproj targets net10.0-android;net10.0-ios, with net10.0-windows10.0.19041.0
# conditionally appended only when building on Windows (that head is built separately in
# build-samples-todoapp-windows.yml). Restore/build here is explicitly scoped to one mobile
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-todoapp-mvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
SolutionFile: 'samples/todoapp-mvc/part5.sln'

permissions:
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-todoapp-tutorial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
ServerProjectFile: 'samples/todoapp-tutorial/ServerApp/ServerApp.csproj'
# ClientApp is a WPF project targeting net10.0-windows, so it is built on a windows-latest
# runner in a separate job below. See https://github.com/CommunityToolkit/Datasync/issues/510.
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-todoapp-uno.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
# TodoApp.Uno.csproj is a single Uno.Sdk project with a multi-head TargetFrameworks list
# (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 (mobile heads
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-samples-todoapp-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ env:
DOTNET_VERSION: '10.0.x'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_CONFIGURATION: 'Release'
# Debug (not Release): this is a build-only compile sanity check, never published/shipped.
# Release builds pointlessly enable IL trimming/AOT machinery on some sample heads (see
# https://github.com/CommunityToolkit/Datasync/issues/521), so all sample CI workflows build
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
# WinUI3 declares <Platforms>x86;x64;ARM64</Platforms> with no AnyCPU, so Platform must be
# specified explicitly - the CLI default of AnyCPU is not a valid configuration for this project.
WinUI3ProjectFile: 'samples/todoapp/TodoApp.WinUI3/TodoApp.WinUI3.csproj'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<AndroidPackageFormat>apk</AndroidPackageFormat>
<AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>

<!--
Mobile target frameworks (including net10.0-android) enable the IL trim analyzer during
`dotnet build` (not just `dotnet publish`) by SDK default. This CI pipeline only ever runs
`dotnet build` (see build-samples-todoapp-avalonia.yml) - it never publishes with
PublishTrimmed, so no actual IL trimming/linking happens here; the analyzer is purely
diagnostic noise on framework APIs (Avalonia's BindingPlugins.DataValidators, EF Core's
DbContext(DbContextOptions) ctor) that their own maintainers have marked
[RequiresUnreferencedCode]. Setting this also sets EnableTrimAnalyzer=false (see
Microsoft.NET.ILLink.targets), which disables the analyzer pass itself, not just its
warning output. See https://github.com/CommunityToolkit/Datasync/issues/521.
-->
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@
<TargetFramework>net10.0-ios</TargetFramework>
<SupportedOSPlatformVersion>15.0</SupportedOSPlatformVersion>
<Nullable>enable</Nullable>

<!--
net10.0-ios enables the IL trim analyzer during `dotnet build` (not just `dotnet publish`),
because iOS app projects are marked trimmable by the SDK by default. This CI pipeline only
ever runs `dotnet build` (see build-samples-todoapp-avalonia.yml) - it never publishes with
PublishTrimmed, so no actual IL trimming/linking happens here; the analyzer is purely
diagnostic noise on framework APIs (Avalonia's BindingPlugins.DataValidators, EF Core's
DbContext(DbContextOptions) ctor) that their own maintainers have marked
[RequiresUnreferencedCode]. Setting this also sets EnableTrimAnalyzer=false (see
Microsoft.NET.ILLink.targets), which disables the analyzer pass itself, not just its
warning output. See https://github.com/CommunityToolkit/Datasync/issues/521.
-->
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
</PropertyGroup>

<ItemGroup>
Expand Down
14 changes: 14 additions & 0 deletions samples/todoapp/TodoApp.MAUI/TodoApp.MAUI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,20 @@
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>

<!--
net10.0-ios enables the IL trim analyzer during `dotnet build` (not just `dotnet publish`),
because iOS app projects are marked trimmable by the SDK by default. This CI pipeline only
ever runs `dotnet build` (see build-samples-todoapp-maui.yml) - it never publishes with
PublishTrimmed, so no actual IL trimming/linking happens here; the analyzer is purely
diagnostic noise on framework APIs (e.g. EF Core's DbContext(DbContextOptions) ctor) that
their own maintainers have marked [RequiresUnreferencedCode]. Setting this also sets
EnableTrimAnalyzer=false (see Microsoft.NET.ILLink.targets), which disables the analyzer
pass itself, not just its warning output. Scoped to the iOS TFM only, since the
Android/Windows heads haven't been confirmed to surface this warning.
See https://github.com/CommunityToolkit/Datasync/issues/521.
-->
<SuppressTrimAnalysisWarnings Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">true</SuppressTrimAnalysisWarnings>
</PropertyGroup>

<ItemGroup>
Expand Down
Loading