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

Generate the sdk msi bundles inside the VMR on windows BuildPass=2 verticals #47397

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

ViktorHofer
Copy link
Member

@ViktorHofer ViktorHofer commented Mar 9, 2025

Fixes dotnet/source-build#4777

The msi bundle depends on artifacts from other windows verticals. Therefore, it needs to be generated in a BuildPass=2 vertical in the VMR.

  • Update the existing BuildPass2 verticals in the YML
  • Add the win-arm64 one in the YML
  • Set a boolean property in redist-installer.proj that decides whether only the sdk bundle should be generated.
  • Move the part of GenerateLayout.targets (from redist-installer.proj) that is responsible for downloading artifacts into a separate targets file: RestoreLayout.targets. This makes it possible to generate the bundle with the restored artifacts without running all the GenerateLayout.targets logic that already ran in the BuildPass=1 vertical.
  • Update the GenerateMsis.targets file so that only the bundle can be built without generating all the other msis that were already built in the BuildPass=1 vertical. Make it not depend on other targets files aside form the newly introduce RestoreLayout.targets and the BundledManifests.targets files.
  • Fix RepositoryReference dependency declaration in sdk.proj and dotnet.proj for BuildPass>1 verticals.
  • Update the sdk Signing/Publishing infrastructure to upload blob artifacts in BuildPass>1 verticals.

This approach (introducing a new boolean) is the fastest one to unblock the missing sdk msi bundle generation in the VMR. It makes the existing code harder to follow. After this is merged and we have time, it would be ideal to componentize some parts into separate projects.

…rticals

Fixes dotnet/source-build#4777

The msi bundle depends on artifacts from other windows verticals.
Therefore, it needs to be generated in a BuildPass=2 vertical in the VMR.

Update the existing BuildPass2 verticals and add the win-arm64 one.
Update the logic to set a Boolean property that decides whether
only the sdk bundle should be generated in redist-installer.proj.

Update existing code so that GenerateMsis.targets doesn't not depend
on other targets files aside form the newly introduce RestoreLayout.targets.
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Infrastructure untriaged Request triage from a team member labels Mar 9, 2025
@ViktorHofer ViktorHofer marked this pull request as ready for review March 11, 2025 12:41
@Copilot Copilot bot review requested due to automatic review settings March 11, 2025 12:41
@ViktorHofer ViktorHofer requested review from a team as code owners March 11, 2025 12:41

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enables MSI bundle generation for the SDK in the VMR on Windows BuildPass=2 verticals by updating existing build configurations and adding support for the win-arm64 vertical.

  • Updated the reuseBuildArtifactsFrom section to include Windows_arm64.
  • Added a new stage block for a Windows build targeting arm64.
Comments suppressed due to low confidence (1)

eng/pipelines/templates/stages/vmr-build.yml:897

  • In the stage with targetArchitecture: x86, the reuseBuildArtifactsFrom list includes 'Windows_arm64'. Please verify if referencing an arm64 artifact for an x86 target is intentional.
- Windows_arm64
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@dotnet dotnet deleted a comment from azure-pipelines bot Mar 11, 2025
@ViktorHofer
Copy link
Member Author

/azp run sdk-unified-build-full

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure untriaged Request triage from a team member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build (just) the sdk bundle in sdk BuildPass=2 for win-x64, win-x86, win-arm64
3 participants