Skip to content
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

Merged
merged 33 commits into from
Jul 27, 2021

Conversation

pjcollins
Copy link
Member

@pjcollins pjcollins commented Jul 9, 2021

Context: https://github.com/xamarin/yaml-templates/pull/117
Context: https://github.com/xamarin/yaml-templates/pull/121

Updates BundledVersions.targets and WorkloadManifest.json exclude
package 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, and
vs-msi-nugets.

The new vs-workload.props file contains version information and other
metadata 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.

@rmarinho
Copy link
Member

Do we want to merge to yaml-templates before taking this ?

@jonathanpeppers
Copy link
Member

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
@pjcollins pjcollins changed the title [WIP] Add nuget convert and VS insert jobs [CI] Add NuGet MSI conversion and VS insert stage Jul 20, 2021
@pjcollins
Copy link
Member Author

@pjcollins pjcollins marked this pull request as ready for review July 20, 2021 18:04
@pjcollins pjcollins requested a review from rmarinho July 20, 2021 18:04
@pjcollins
Copy link
Member Author

pjcollins commented Jul 21, 2021

@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.

@Redth Redth added this to the 6.0.100-preview.7 milestone Jul 22, 2021
@pjcollins pjcollins marked this pull request as draft July 22, 2021 18:51
@pjcollins
Copy link
Member Author

Let's hold off on this for now, we have more yaml-templates changes coming in hot to handle .msi generation for manifest packs.

Copy link
Member

@jonathanpeppers jonathanpeppers left a 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.

dotnet-maestro bot and others added 6 commits July 23, 2021 12:54
* 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>
@pjcollins
Copy link
Member Author

@pjcollins pjcollins marked this pull request as ready for review July 27, 2021 13:45
@mattleibow mattleibow merged commit 41a42d1 into main Jul 27, 2021
@mattleibow mattleibow deleted the pjc/nuget-convert-insert branch July 27, 2021 14:21
@github-actions github-actions bot locked and limited conversation to collaborators Dec 25, 2023
@samhouts samhouts added the fixed-in-6.0.100-preview.7.3 Look for this fix in 6.0.100-preview.7.3! label Aug 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
fixed-in-6.0.100-preview.7.3 Look for this fix in 6.0.100-preview.7.3!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants