Migrate nuget-msi-convert to v5.yml (WiX 6)#11743
Conversation
Smoke-test the WiX 3 -> WiX 6.0.3-dotnet.4 migration of the nuget-msi-convert template in Xamarin.yaml-templates (PR #752740, branch jonathanpeppers-nuget-msi-convert-v5). Adds a temporary second repository resource `yaml-templates-v5` pinned to the feature branch, and switches the nuget-msi-convert template reference from `v4.yml@yaml-templates` to `v5.yml@yaml-templates-v5`. All other templates (sign-artifacts, policheck, build-summary) continue to consume yaml-templates@main, so this is a single-template swap. Not to be merged: revert once the Xamarin.yaml-templates v5 PR lands. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Instead of cloning the yaml-templates resource into a second entry, point the existing one at the v5 feature branch. The other templates (sign-artifacts/v4.yml, security/policheck/v3.yml, build-summary/v1.yml) are present on the feature branch too, so this is safe for the smoke test. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
30c9579 to
9d86333
Compare
The WiX 6 migration of nuget-msi-convert (Xamarin.yaml-templates PR #752740) has merged to main, so we can drop the temporary feature-branch pin. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Xamarin.yaml-templates PR #754224 adds a fallback for BundledNETCoreAppTargetFramework on .NET 10 SDK (which only defines the *Version* property). Without this, the inner msi.csproj builds in _GenerateManifestsAndMsiNuGets fail with NETSDK1013. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Local validation on ✅ With .NET SDK The synthesized Ready for an internal re-queue against this branch. |
There was a problem hiding this comment.
Pull request overview
This PR updates the Azure DevOps pipeline definition used by dotnet/android to smoke-test the nuget-msi-convert template’s WiX 6 migration by switching from v4.yml to v5.yml and (currently) pinning the yaml-templates repository resource to a feature branch.
Changes:
- Pin
DevDiv/Xamarin.yaml-templatespipeline resource to a feature branch. - Switch
nuget-msi-convertjob template fromv4.ymltov5.yml. - Update the inline comment referencing which template produced the drop consumed later in the pipeline.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
✅ End-to-end validation succeeded on build 14529573 (still running other test stages, but the Convert NuGet to MSI job completed its work cleanly):
Remaining steps in that job are Guardian/SDL scanning, SBoM, and 1ES post-job cleanup — not blockers. |
|
Artifact validation against build 14529573: Pulled the
Coverage:
Versioning: The presence of the workload manifest pack confirms the workload registration generation works end-to-end on the new WiX 6 toolchain. Output shape is functionally equivalent to what v4 produced; only the build infrastructure changed. |
Equivalent of dotnet/android#11743 for dotnet/macios. Switches the nuget-msi-convert template reference from nuget-msi-convert/job/v4.yml@yaml-templates to v5.yml@yaml-templates, and updates the corresponding comment. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Migrates
dotnet/android's signed pipeline from the WiX 3nuget-msi-convert/v4.ymltemplate to the WiX 6v5.ymltemplate (Microsoft.Wix 6.0.3-dotnet.4).Changes
Switches the nuget-msi-convert template reference from
nuget-msi-convert/job/v4.yml@yaml-templatestonuget-msi-convert/job/v5.yml@yaml-templates, and updates an adjacent comment. All other consumers ofyaml-templates@main(sign-artifacts, policheck, build-summary) are unchanged — this is a single-template swap.Related Xamarin.yaml-templates work (all merged to
main)nuget-msi-convert(addsv5.yml)$(BundledNETCoreAppTargetFramework)for .NET 10 SDKIntermediate fix commits that landed inside #752740 before it merged:
baf73ec— Buildconvert.projwith Core MSBuild (DotNetCoreCLI@2), not desktop msbuild981d2a6— Pass absolute paths toCreateVisualStudioWorkloadd8a73d8— RenameWixPackageVersion→MicrosoftWixToolsetSdkVersion(arcade-canonical)What changed in v5 vs v4 (for reviewer context)
6.0.3-dotnet.4(was WiX 3)swixBuildPackageVersion: 1.1.922(was 1.1.392)arcadePackageVersion: 11.0.0-beta.26325.102(was 9.0.0-beta.24509.3)arcadeTasksFxVersion: net(wasnetcoreapp3.1)dotNetSdkVersion: 10.0.x(was 9.0.x — required; arcade 11.x tasks are net10.0)convert.projnow built withDotNetCoreCLI@2 / dotnet msbuild(Core MSBuild) instead ofMSBuild@1desktop msbuild, because arcade 11.x workload tasks ship onlytools/net/(.NETCoreApp v10). SwixBuild still uses desktop msbuild via the internal_FindMSBuildtarget.WixPackageVersion→MicrosoftWixToolsetSdkVersion(arcade-canonical, matches dotnet/dotnet VMR).All new parameters have sensible defaults in
v5.yml, so dotnet/android does not need to override any of them.End-to-end CI validation (build 14529573)
Internal
Xamarin.Androidsigned build against this branch succeeded. TheConvert NuGet to MSIjob produced:.msiinstallers = 13 workload packages × 3 host architectures (x86/x64/arm64)*.msi.<arch>.<version>.nupkgpackages, all MicroBuild-verified (Certificate : Passed)microsoft.net.sdk.android.manifest-11.0.100-preview.7MSI / nupkg spot-check (
Microsoft.Android.Sdk.Windows.Msi.x64)CreatedByfield (PID 18):WiX Dev Build (6.0.3.4)— confirms WiX 6 toolset.WixDependencyProvider(WiX 3) →Wix4DependencyProvider(WiX 4+ versioned name), populated with the correctProviderKey:Microsoft.Android.Sdk.Windows,<version>,x64.data/msi.jsoninside the nupkg has identical schema to the WiX 3 baseline (36.99.0-preview.5.308), withProviderKeyNamecorrectly extracted in canonicalPackageName,Version,Archform. NewRelatedProductsarray additionally surfacesWIX_UPGRADE_DETECTED/WIX_DOWNGRADE_DETECTEDupgrade metadata — feature gain, not a regression.