Skip to content

Enable publishing in VMR #54422

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

Merged
merged 2 commits into from
Mar 14, 2024
Merged

Conversation

NikolaMilosavljevic
Copy link
Member

Contributes to dotnet/source-build#4101

Enables publishing in VMR.

@NikolaMilosavljevic NikolaMilosavljevic requested review from ViktorHofer, mmitche and a team March 7, 2024 22:54
@NikolaMilosavljevic NikolaMilosavljevic requested review from wtgodbe and a team as code owners March 7, 2024 22:54
@ghost ghost added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Mar 7, 2024

<ItemsToPushToBlobFeed Include="@(_ChecksumsToPublish)">
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
<PublishFlatContainer>true</PublishFlatContainer>
<RelativeBlobPath>$(_UploadPathRoot)/Runtime/$(_PackageVersion)/%(Filename)%(Extension)</RelativeBlobPath>
</ItemsToPushToBlobFeed>

<ItemsToPushToBlobFeed Include="@(_VersionFileToPublish)">
Copy link
Member

Choose a reason for hiding this comment

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

Was this not getting published before?

Copy link
Member Author

Choose a reason for hiding this comment

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

Not in VMR build, no.

Copy link
Member Author

Choose a reason for hiding this comment

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

OK - I see why - this is conditioned on PublishInstallerBaseVersion -

<_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.version" UploadPathSegment="Runtime"
Condition=" '$(PublishInstallerBaseVersion)' == 'true' " />

The property is only set in CI:

/p:PublishInstallerBaseVersion=true

I should probably update the existing condition to also publish in VMR (i.e. when '$(DotNetBuildRepo)' == 'true')?

Copy link
Member

Choose a reason for hiding this comment

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

Yes. When you see things like this, e.g. OS != Windows_NT or some kind of random flag that says SkipPublishingInstallers or something along those lines, it's that the repo's official build was publishing duplicates of assets between two legs. So Windows and OSX both produced Foo.Bar. The rule in our official builds is that when the merged manifest is generated, you can't have any duplicates from the input manifests.

This is not the rule in the VMR and we don't want to do this here. The asset selection that will happen at the merge point will be responsible for deciding which of a set of duplicates wins, and we'll add metadata to repo builds as necessary to feed the algorithm. This is in contrast to the official repo builds, which just avoid publishing altogether for duplicate assets.

So, much of your publishing.props changes in the repos can get a lot simpler (maybe go away altogether)

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed with 9dc87de

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants