-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI] Add NuGet MSI conversion and VS insert stage #1618
Conversation
Do we want to merge to yaml-templates before taking this ? |
Yes, I think we need this first: https://github.com/xamarin/yaml-templates/pull/117 It looks like there are some temporary changes to bump iOS & Android here, too. |
Conflicts: eng/Version.Details.xml eng/Versions.props src/Workload/Microsoft.Maui.Controls.Ref/Microsoft.Maui.Controls.Ref.csproj src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.in.json
Latest test run triggered here https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=4998323&view=results. |
@mattleibow @rmarinho when you have a chance to review, I think we can land this for now and then take any future incremental changes as needed for preview 7. Please add anyone else who should take a look as well. |
Let's hold off on this for now, we have more yaml-templates changes coming in hot to handle .msi generation for manifest packs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I think @pjcollins wanted to get one more change from a .yaml template before merging this.
* Update dependencies from https://github.com/xamarin/xamarin-android build 6.0.1xx-preview7-8ca289588b6969a2cc878afa0813afec8cd63dd3-1 Microsoft.Android.Sdk.Windows From Version 30.0.100-preview.7.91 -> To Version 30.0.100-preview.7.93 Dependency coherency updates Microsoft.NETCore.App.Ref,Microsoft.Dotnet.Sdk.Internal,Microsoft.Extensions.Primitives,Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.Extensions.Hosting.Abstractions,Microsoft.Extensions.DependencyInjection.Abstractions,Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.Configuration.Abstractions,Microsoft.Extensions.Configuration,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.Logging.Debug,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.FileProviders.Embedded,Microsoft.AspNetCore.Authorization,Microsoft.AspNetCore.Components.WebView,Microsoft.AspNetCore.Components.Web,Microsoft.JSInterop,Microsoft.WindowsDesktop.App.Runtime.win-x64,System.CodeDom From Version 6.0.0-preview.7.21326.8 -> To Version 6.0.0-preview.7.21368.2 (parent: Microsoft.Dotnet.Sdk.Internal * [build] remove workaround for iOS AOT packages on Windows * Ignore NU1703 in DeviceTests NU1703 warns about using nuget packages which have xamarin.ios tfm references from a newer net6.0-maccatalyst project. * Workaround error for implicit imports Context: dotnet/sdk#19050 and dotnet/java-interop@4fb7c14 * Ignore NU1703 for Mac Catalyst projects * Revert "Ignore NU1703 in DeviceTests" This reverts commit 8fdf5e1. * Revert "Revert "Ignore NU1703 in DeviceTests"" This reverts commit 4d0456d. * Fix other C# 10-related errors * Use `LangVersion=latest` by default * Fixed new NRT-related errors that appeared from C# 10.0 * Disable StaticWebAssets in MauiRazorClassLibrarySample Workaround to get the build to work. Will revert later to investigate. Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com> Co-authored-by: Jonathan Dick <jondick@gmail.com> Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>
* IContainer proposal * Update the test classes to match the updated interfaces * Make substitution work for new layout interface * Fix Windows * Implement methods on stub I missed * And another thing I forgot to implement * Remove commented code * Make IContainer implementation explicit * Fix child collection access in test
* Android Shell Handler * - fix resource references on compatibility
…uild 6.0.1xx-preview7-1734a83c4788337258aa4e83d45a6f143500b7cb-1 (#1783) Microsoft.Android.Sdk.Windows From Version 30.0.100-preview.7.93 -> To Version 30.0.100-preview.7.95 Dependency coherency updates Microsoft.Extensions.Hosting.Abstractions,Microsoft.Extensions.DependencyInjection.Abstractions,Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.Configuration.Abstractions,Microsoft.Extensions.Configuration,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.Logging.Debug,Microsoft.Extensions.FileProviders.Abstractions,System.CodeDom From Version 6.0.0-preview.7.21365.2 -> To Version 6.0.0-preview.7.21368.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Test run for v2 msi conversion: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=5013484&view=results |
Context: https://github.com/xamarin/yaml-templates/pull/117
Context: https://github.com/xamarin/yaml-templates/pull/121
Updates
BundledVersions.targets
andWorkloadManifest.json
excludepackage semver metadata, as this is excluded in both Android and maciOS.
The .msi conversion tooling also does not process these semver metadata
correctly.
A new CI job and stage have been added to facilitate the Visual Studio
installer insertion process.
The first job named "Convert NuGet to MSI" will convert signed packages
to .msi installers, and generate Visual Studio manifests for the .msi
installers. The .msi files are signed and converted back to .nupkg
files for the Windows command line install scenario. These packages are
uploaded as pipeline artifacts named
vsdrop-signed
, andvs-msi-nugets
.The new
vs-workload.props
file contains version information and othermetadata used by the convert job to generate a Visual Studio manifest.
The new "VS Insertion" stage starts with a manual validation task.
This task will pause execution and wait for someone to click a "Resume"
or "Reject" button that will appear on the pipeline UI. This task is
configured to be rejected after waiting for two days, but it can be
manually re-ran any time after being rejected to trigger a VS insertion
for an older build.
If the manual validation task is approved, a VS Drop will be created
containing all .NET 6 .msi files. This Drop URL can then be used to
update our component versions in Visual Studio. This last piece is
currently manual as we will initially be introducing new components,
however we should be able to automate VS PR creation in the future.